在VBA編輯器的菜單欄上面點擊【插入】,【模塊】。
在VBA編輯器的代碼框里面輸入以下程序:
Sub deleterows()
Dim i&, k& '定義i,k為長整數
On Error Resume Next '忽略運行過程中出現的錯誤
Application.ScreenUpdating = False '關閉屏幕更新,以加快宏的執行速度
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定義工作表
k = 1
For i = 2 To 80000 '共執行這么多行
k = k + 1 '從第二行開始
If mysheet1.Cells(k, 1) = mysheet1.Cells(1, 6) Then '條件判斷
mysheet1.Rows(k).Delete shift:=xlUp '刪除行
k = k - 1 '如果刪除一行,則少一行
End If
Next
Application.ScreenUpdating = True '開啟屏幕更新
MsgBox "共刪除:" & 80000 - k & "行" '彈出提示
End Sub
程序釋義:
在程序里面,每刪除一行,則少一行,下面的行會自動補上。如果單獨使用For循環進行刪除,將會漏掉一些,所以才引入行的中間變量k,每執行一個循環將增加一行(k=k+1),即使行被刪除后上移,其對應的條件行數還是不變(即:k=k-1)。
點擊VBA編輯器工具欄上面的“運行”圖標運行程序,或者按下【F5】鍵運行程序。
程序運行完成后,將會彈出刪除多少行的提示,Excel表格上面滿足條件的行已經被刪除。