2017-01-19 122 views
-1

我在VBA中創建了以下宏,但是當我調用它時什麼也沒有發生。任何想法爲什麼這可能無效?VBA宏未運行

Sub RemoveWords(DeleteFromCol As Range, FindCol As Range) 

    Dim words As New Collection 
    Dim r As Range 
    Dim word As Variant 

    For Each r In FindCol 
    words.Add (r.Value2) 
    Next r 

    For Each r In DeleteFromCol 
    For Each word In words 
     r.Value2 = Replace(r.Value2, word, "") 
    Next word 
    Next r 

End Sub 

Sub Remove() 

RemoveWords Range("A1:A233"), Range("B1:B5") 

End Sub 
+0

嘗試在'For Each r在DeleteFromCol中'放置斷點,並檢查添加到單詞集合中的單詞數。 –

+0

當我測試時,它適合我。你能告訴更多,你如何運行這個。 –

+0

您的代碼適用於我,您是否在範圍(「A1:A233」)中的單元格中顯示範圍(「B1:B5」)中的文本?例如,我在Cell B3中有「Rado」,在Cell A70中有「Shai Rado」,它在Cell A70中將「Shai Rado」更改爲「Shai」 –

回答

0

宏不起作用,因爲也許你不及格強制性參數:

(DeleteFromCol As Range, FindCol As Range) 

是正確的嗎?

0

現在就工作吧。這是由於單元格中有多個單詞。您必須將單元格分割爲每個包含1個單詞,並且運行良好。