我有以下数据
A B C D E
1 test abc abc abc #N/A
2
3
我想删除 3 abc 以及 #N/A 但我无法删除整行,因为它可能包含不被删除的数据。范围也不是固定的。
我想到了下面的代码,但它只是用“”替换了#N/A
Cells.Replace "#N/A", "", xlWhole
如果您有任何提示,请与我分享。提前致谢!
您自己的答案很重要,但需要一些更正和调整:
Sub DeleteNA()
Dim c As Range
For Each c In Intersect(ActiveSheet.Columns("T"), ActiveSheet.UsedRange).Cells
If VarType(c.Value) = vbError And c.Text = "#N/A" Then c.Offset(, -4).Resize(, 5).ClearContents
Next
End Sub
如果这仍然需要很长时间,请考虑使用Application.Calculation = xlCalculationManual
和Application.ScreenUpdating = False
编辑:更正清除单元格和右侧的 4 个单元格(而不是 3 个)
修改了网上找到的一些代码后尝试了,找到了一个办法,
Sub DeleteNA()
Dim r As Long
Dim iCol As Long
For iCol = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
For r = Cells(Rows.Count, iCol).End(xlUp).Row To 1 Step -1
If Application.WorksheetFunction.IsNA(Cells(r, iCol)) Then
Cells(r, iCol - 4) = ""
Cells(r, iCol - 3) = ""
Cells(r, iCol - 2) = ""
Cells(r, iCol - 1) = ""
Cells(r, iCol) = ""
End If
Next r
Next iCol
End Sub
它看起来很长,当数据很多时可能需要很长时间..