0

我有以下数据

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

如果您有任何提示,请与我分享。提前致谢!

4

2 回答 2

1

您自己的答案很重要,但需要一些更正和调整:

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 = xlCalculationManualApplication.ScreenUpdating = False

编辑:更正清除单元格和右侧的 4 个单元格(而不是 3 个)

于 2013-08-14T09:17:00.767 回答
0

修改了网上找到的一些代码后尝试了,找到了一个办法,

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

它看起来很长,当数据很多时可能需要很长时间..

于 2013-08-14T07:09:33.040 回答