在除几个工作表之外的所有工作表中删除包含零的行
Delete rows containing zero on all but a couple of worksheets
我正在尝试创建一个宏来删除我工作中除少数工作簿之外的所有工作簿中 L 列中包含 0 值的行sheet。我找到了一个可以在 activesheet 上执行此操作的宏,我试图将它嵌套在循环遍历所需 sheet 的函数中,但它仍然只删除 active [=5= 中的零].谁能看出我做错了什么?
代码如下:
Sub nul_waarden_verwijderen()
Dim WS As Worksheet
Dim lngMyRow As Long
Application.ScreenUpdating = False
For Each WS In ActiveWorkbook.Worksheets
If WS.Name <> "TB per 29122014" And WS.Name <> "SCOA" And WS.Name <> "105 Enterprise klad" And WS.Name <> "105 rekenblad" And WS.Name <> "list" Then
For lngMyRow = Cells(Cells.Rows.Count, "E").End(xlUp).Row To 2 Step -1
If Val(Cells(lngMyRow, "L")) = 0 Then
Rows(lngMyRow).EntireRow.Delete
End If
Next lngMyRow
End If
Next WS
End Sub
您必须在 .Cells 和 .Rows 前使用限定符才能使其在特定工作表上工作。如果没有这个限定符,那两个指的是 ActiveSheet.Cells 和 ActiveSheet.Rows.
For Each WS In ActiveWorkbook.Worksheets
If WS.Name <> "TB per 29122014" And WS.Name <> "SCOA" And WS.Name <> "105 Enterprise klad" And WS.Name <> "105 rekenblad" And WS.Name <> "list" Then
For lngMyRow = WS.Cells(Cells.Rows.Count, "E").End(xlUp).Row To 2 Step -1
If Val(WS.Cells(lngMyRow, "L")) = 0 Then
WS.Rows(lngMyRow).EntireRow.Delete
End If
Next lngMyRow
End If
Next WS
我正在尝试创建一个宏来删除我工作中除少数工作簿之外的所有工作簿中 L 列中包含 0 值的行sheet。我找到了一个可以在 activesheet 上执行此操作的宏,我试图将它嵌套在循环遍历所需 sheet 的函数中,但它仍然只删除 active [=5= 中的零].谁能看出我做错了什么?
代码如下:
Sub nul_waarden_verwijderen()
Dim WS As Worksheet
Dim lngMyRow As Long
Application.ScreenUpdating = False
For Each WS In ActiveWorkbook.Worksheets
If WS.Name <> "TB per 29122014" And WS.Name <> "SCOA" And WS.Name <> "105 Enterprise klad" And WS.Name <> "105 rekenblad" And WS.Name <> "list" Then
For lngMyRow = Cells(Cells.Rows.Count, "E").End(xlUp).Row To 2 Step -1
If Val(Cells(lngMyRow, "L")) = 0 Then
Rows(lngMyRow).EntireRow.Delete
End If
Next lngMyRow
End If
Next WS
End Sub
您必须在 .Cells 和 .Rows 前使用限定符才能使其在特定工作表上工作。如果没有这个限定符,那两个指的是 ActiveSheet.Cells 和 ActiveSheet.Rows.
For Each WS In ActiveWorkbook.Worksheets
If WS.Name <> "TB per 29122014" And WS.Name <> "SCOA" And WS.Name <> "105 Enterprise klad" And WS.Name <> "105 rekenblad" And WS.Name <> "list" Then
For lngMyRow = WS.Cells(Cells.Rows.Count, "E").End(xlUp).Row To 2 Step -1
If Val(WS.Cells(lngMyRow, "L")) = 0 Then
WS.Rows(lngMyRow).EntireRow.Delete
End If
Next lngMyRow
End If
Next WS