当vlookup返回#N / A时删除行

时间:2016-10-13 14:40:23

标签: excel vba

我正在使用下面的代码,但不知道如何删除行。

Sub DebitNote()

Do

'=VLOOKUP('Cost Gained'!$H2,SupplierSheetWithAddress!$A$1:$M$101,7,0)
ActiveCell.Offset(0, 4).FormulaR1C1 = "=VLOOKUP('Cost Gained'!RC8,SupplierSheetWithAddress!R1C1:R101C13,7,0)"


This starts in ("Cost Gained") from Column L,M,N,O,P,R
#N/A    #N/A    #N/A    #N/A    #N/A    #N/A    #N/A
365 FOSSE WAY   SYSTON  UK  LE7 1NL         
SIR HENRY PARKES Rd CANLEY  COVENTRY    UK      CV5 6BN     
69-75 BOSTON MANOR ROAD BRENTFORD   UK  TW8 9JJ         
365 FOSSE WAY   SYSTON  UK  LE7 1NL         
PRAGSTR. 26-46  STUTTGART   GERMANY 70376           
69-75 BOSTON MANOR ROAD BRENTFORD   UK  TW8 9JJ         
#N/A    #N/A    #N/A    #N/A    #N/A    #N/A    #N/A
33 WEST STREET  ALFORD-LINCOLNSHIRE UK  LN13 3DQ    

我有一个循环,将数据复制到另一张纸上的特定单元格中,所以我不希望它选择#N / A并将其发送,因为它不会有任何好处。 非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

继续我的评论 - 只过滤掉错误并复制可见的单元格。

以下示例显示了基础知识:

Sub Test()

    With ThisWorkbook.Worksheets("Sheet1")
        'Set up some data with a few #N/A errors
        .Range("A1:D1") = Array("A", "B", "C", "D")
        .Range("A2:D20") = Rnd
        .Range("A6,A9,A12,A17").FormulaR1C1 = "=NA()"

        'Filter out the #N/A errors and copy the visible cells to a new sheet.
        With .Range("A1:D20")
            .AutoFilter Field:=1, Criteria1:="<>#N/A"
            .SpecialCells(xlCellTypeVisible).Copy _
                Destination:=ThisWorkbook.Worksheets("Sheet2").Range("A1")
        End With
    End With

End Sub