VBA在Excel中删除行 - 仅针对特定工作表

时间:2017-02-14 12:31:01

标签: excel vba excel-vba

我使用循环查找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中运行,因为这个循环只是更大代码的一部分。

任何帮助都表示赞赏,并提前致谢。

2 个答案:

答案 0 :(得分:1)

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

注意:您也可以使用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

答案 1 :(得分:0)

如果代码块在循环通过工作表的较大循环内,添加if条件(activesheet.index = 2)或只是检查活动表是否为sheet2或者它是否只是一个单独的循环然后在代码中指定表单