VBA宏未运行

VBA宏未运行,vba,excel,Vba,Excel,我在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 Delete

我在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

宏不起作用,因为您可能没有传递强制参数:

(DeleteFromCol As Range, FindCol As Range)

对吗?

现在开始工作了。这是因为细胞中有多个单词。您必须将单元格拆分为每个单元格包含一个单词,它运行正常。

尝试将断点设置为“DeleteFromCol中的每个r”,并检查添加到单词集合的单词数。当我进行测试时,它对我很有效。你能告诉我更多你是如何运行这个的吗?你的代码对我来说是有效的,你有范围内的文本(“B1:B5”)在范围内的单元格(“A1:A233”)中吗?例如,我在单元格B3中有“Rado”,在单元格A70中有“Shai Rado”,它将单元格A70中的“Shai Rado”更改为“Shai”,您是否将正确的工作表范围传递给子单元格?您可以尝试
Sheet1.Range(“A1:A233”)
而不仅仅是
Range(“A1:A233”)
它将引用Sheet1范围。我认为语法是正确的,但是当我将代码粘贴到VBA中的模块1中并关闭,然后通过宏菜单(单击运行)运行它时,什么都没有发生。单元格范围也填充了重复项。