删除循环中的行或列
如果要删除循环中的行(或列),则应始终从范围的末尾开始循环,然后在每个步骤中向后移动。如果使用代码:
Dim i As Long
With Workbooks("Book1").Worksheets("Sheet1")
For i = 1 To 4
If IsEmpty(.Cells(i, 1)) Then .Rows(i).Delete
Next i
End With
你会错过一些行。例如,如果代码删除第 3 行,则第 4 行将变为第 3 行。但是,变量 i
将更改为 4.因此,在这种情况下,代码将错过一行并检查另一行,这在先前不在范围内。
正确的代码将是
Dim i As Long
With Workbooks("Book1").Worksheets("Sheet1")
For i = 4 To 1 Step -1
If IsEmpty(.Cells(i, 1)) Then .Rows(i).Delete
Next i
End With