VBA可以在一个宏excel中正常工作,但不能在另一个宏excel中工作

时间:2018-08-01 15:39:28

标签: excel vba excel-vba

我编写了一个vba代码,以在动态列“ F”中找到单元格值为i cell“ i1”的匹配项。当在“ F”列中找到匹配项时,它将清除特定行的内容。
VBA在excel marco中工作正常,我已经在其中编写了VBA代码,但令我惊讶的是,当我将相同的VBA代码复制到工作表中具有相同内容的另一个excel宏中并运行VBA代码时,它不会清除所有匹配项内容行,即清除了一些匹配行,而未清除某些匹配行。我在哪里做错了?

SpringBoot

Picture of the macro excel worksheet

2 个答案:

答案 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