我编写了一个vba代码,以在动态列“ F”中找到单元格值为i cell“ i1”的匹配项。当在“ F”列中找到匹配项时,它将清除特定行的内容。
VBA在excel marco中工作正常,我已经在其中编写了VBA代码,但令我惊讶的是,当我将相同的VBA代码复制到工作表中具有相同内容的另一个excel宏中并运行VBA代码时,它不会清除所有匹配项内容行,即清除了一些匹配行,而未清除某些匹配行。我在哪里做错了?
SpringBoot
答案 0 :(得分:3)
恕我直言,您只需要修正拼写错误并将代码复制到模块(而不是工作表或工作簿模块)中,它将在活动工作表上正常工作。
Sub test()
Dim i As Long
For i = 100 To 1 Step -1
If Range("F" & i).Value = Range("i1").Value Then
Rows(i).EntireRow.ClearContents
End If
Next i
End Sub
答案 1 :(得分:1)
Rows(i)
和Range("F" & i)
的定义是隐式的,可能引用另一个工作表,甚至另一个工作簿。
下面是使用工作表引用的示例代码。
Dim i as long
Dim ws as Worksheet
Set ws = ThisWorkBook.Sheets("YourSheetName")
For i = 100 To 1 step -1
If ws.Range("F" & i).Value = ws.Range("i1").Value Then ws.Rows(i).EntireRow.ClearContents
Next i