【发布时间】:2018-04-02 13:33:46
【问题描述】:
我想构建一个宏,该宏根据 if 语句从 Excel 工作表中的表中删除行,该语句在从第 2 行到表末尾的所有行上运行 - 如果第 i 行和 B 列中的值等于 0 我想删除整行。
这是我写的代码,但是当我运行它时没有任何反应
Sub deleteZeroRows()
'loop for deleting zero rows
Dim wbCurrent As Workbook
Dim wsCurrent As Worksheet
Dim nLastCol, i As Integer
Set wbCurrent = ActiveWorkbook
Set wsCurrent = wbCurrent.ActiveSheet
Dim lastRow As Long
lastRow = Range("b2").End(xlDown).Select
For i = 2 To lastRow
If wsCurrent.Cells(i, 2) = 0 Then
wsCurrent.Cells(i, 2).EntireRow.Delete
End If
Next i
End Sub
【问题讨论】:
-
如果您像删除行一样不仔细查看代码,则必须在循环中倒退。再看一遍告诉我,第一个问题是
lastRow = Range("b2").End(xlDown).Select此处不要使用Select这一行