我是 VBA 初学者。我有以下简单的循环代码,以便从数据库中删除第 9 列单元格上具有“na”值的行:
Dim n As Integer
n = 500
For i = 1 To n
If Cells(i, 9).Value = "n.a." Then
Rows("i:i").Select
Selection.Delete Shift:=xlUp
End If
Next i
End Sub
但是我收到 1004 错误,有人可以帮助我吗?
最佳答案
Option Explicit
Public Sub TestMe()
Dim n As Integer
n = 500
For i = n To 1 Step -1
If Cells(i, 9).value = "n.a." Then
rows(i & ":" & i).Select
Selection.Delete Shift:=xlUp
End If
Next i
End Sub
每当您删除行时,请从最大到最小开始执行。稍后您可以谷歌如何避免 Select
以及如何使用 Union
以便一步完成删除。最后,您可以将 Integer
替换为 Long
。
关于vba - 如何在vba上在一种条件下自动删除完整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46218049/