如何用VBA删除有#N/A的行。?

关注者
5
被浏览
4,563

3 个回答

谢邀,正好手头有个表就拉来写了一下,你根据你的稍作改动就行。

Sub deleterows()

Dim i&, k& '定义i,k为长整数

Application.ScreenUpdating = False '关闭屏幕更新,以加快宏的执行速度

k = 1

For i = 2 To 80000 '共执行这么多行

k = k + 1 '从第二行开始

If Cells(k, 1).Value = "#N/A" Then '条件判断

mysheet1.Rows(k).Delete shift:=xlUp '删除行

k = k - 1 '如果删除一行,则少一行

End If

Next

Application.ScreenUpdating = True '开启屏幕更新

MsgBox "共删除:" & 80000 - k & "行" '弹出提示

End Sub

如果这种行太多,建议还是执行筛选选中这些行,再执行删除行命令。VBA逐行删除在行数较多时效率太低,你会以为死机了。