2017-03-21 29 views
0

我有一个VBA代码,用于在单元列中存在绝对零值时删除整行,但我无法弄清楚如何更新代码以应用于所有工作表(我的工作簿中有20张表格):使用零删除整行适用于所有工作表

有人可以帮助您了解如何更新此代码以应用于工作簿中的所有工作表。

Sub IfandthenDelete_Button3_Click() 

Dim lRow As Long 

Dim i As Long 

lRow = 3000 

Application.ScreenUpdating = False 

For i = lRow To 1 Step -1 

    If Cells(i, 1) = 0 Then 

    Rows(i).Delete 
     End If 

Next 

Application.ScreenUpdating = False 
End Sub 
+0

1.您不能重新启用屏幕更新;只是重复'Application.ScreenUpdating = False'命令。 2.您的数据结构如何,自动筛选器命令可以加快速度? – Jeeped

+0

谢谢!! ...是的。我重新启用了屏幕更新True,并且我没有正确添加第二个循环来搜索我正在寻找的所有工作表单元格。这对于了解需要什么非常有帮助。 –

+0

自动过滤器..我想如果使用它会减慢计算?....或加快速度?基本上,列“A”中有零,我想要删除整行。 –

回答

0

你需要一个更for循环。

Sub WorksheetLoop() 
    Dim wsCount As Integer 
    Dim j As Integer 
    Dim lRow As Long 
    Dim i As Long 

    lRow = 3000 
    wsCount = ActiveWorkbook.Worksheets.Count 

    For j = 1 To wsCount 

     For i = lRow To 1 Step -1 
      If ActiveWorkbook.Worksheets(j).Cells(i, 1) = 0 Then 
       ActiveWorkbook.Worksheets(j).Rows(i).Delete 
      End If 
     Next 

    Next j 

End Sub 
相关问题