刪除迴圈中的行或列

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

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