如果#N / A删除行或仅选择不是#N / A的行

时间:2014-10-29 13:42:39

标签: excel-vba excel-2007 vba excel

我在VBA中构建一个宏来执行许多不同的功能,其中一个功能就是将数据从不同的电子表格复制到报表中。将提供数据的主电子表格包含所有客户端的数据,我正在使用VLOOKUP,然后导入与该客户端相关的所有数据。有没有办法:

1)向下查看第一项#N/A的列,然后选择其上方的所有数据(拉出第一个#N/A的行号将非常有用,并使第二项变得容易

2)删除行是列U是#N / A - 我发现的问题是循环非常大并且需要很长时间,我使用类似于下面的链接< / p>

I want to delete the row if columns C,D and E has #N/A using VBA

1 个答案:

答案 0 :(得分:1)

这够快吗?:

Sub Macro1()
    Dim N As Long, rFilter As Range
    N = Cells(Rows.Count, "U").End(xlUp).Row
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
        Set rFilter = Range("U1:U" & N)
        Set rr = Range("U2:U" & N)
        rFilter.AutoFilter Field:=1, Criteria1:="#N/A"
        Set rkill = rr.Cells.SpecialCells(xlCellTypeVisible)
        rkill.EntireRow.Delete
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    rFilter(1).AutoFilter
End Sub