VBA删除Excel中的行 – 仅循环用于某些工作表

我正在使用一个循环在列B中查找带有“0”条目的单元格,然后删除整个对应的行。

不幸的是,我不能写它,所以它只适用于一个特定的工作表。 这是我到目前为止:

Dim myloop For myloop = Range("B10000").End(xlUp).Row To 1 Step -1 If Cells(myloop, 4).Value = 0 Then Rows(myloop).EntireRow.Delete Next myloop 

我希望这个循环专门为工作表2运行,但不是我的整个代码只能在工作表2中运行,因为这个循环只是更大代码的一部分。

任何帮助表示感谢,并提前感谢。

您需要使用certian Worksheet完全限定您的Range

注意 :你也可以使用AutoFilter ,对于大数据工作更快。

 With Worksheets("Sheet1") ' <-- modify "Sheet1" to your sheet's name For myloop = .Range("B10000").End(xlUp).Row To 1 Step -1 If .Cells(myloop, 4).Value = 0 Then .Rows(myloop).EntireRow.Delete Next myloop End With 

另一种方法 :获取列B中数据的最后一行(如果数据将超过10,000行)

 With Worksheets("Sheet1") ' <-- modify "Sheet1" to your sheet's name For myloop = .Range("B" & .Cells(.Rows.Count, "B")).End(xlUp).Row To 1 Step -1 If .Cells(myloop, 4).Value = 0 Then .Rows(myloop).EntireRow.Delete Next myloop End With 

如果代码块在循环工作表的更大的循环内,则添加if条件(activesheet.index = 2),或者只检查activesheet是sheet2还是只是单独循环,然后在代码中指定表单