刪除迴圈中的行或列
如果要刪除迴圈中的行(或列),則應始終從範圍的末尾開始迴圈,然後在每個步驟中向後移動。如果使用程式碼:
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