2016-10-13 3 views
1

私はこのコードで作業していますが、行を削除する方法がわかりません。vlookupが#N/Aを返すときに行を削除する

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を選択し、それは文句を言わない何か良いこととして、それをオフに送信したくないので、私は別のシート上の特定のセルに上のデータをコピーするには、この上のループを持っています。 ご迷惑をおかけして申し訳ございません。

+0

または私はそれに#N/Aを持っていた行をスキップすることができればまた、私はA2 =#N/Aを推測しているおかげで –

+0

に役立つだろう...もしそうなら、Ifブロックを使ってコードの周りに式を設定するのはどうですか? 'もしActiveCell.Offset(0、-7)="#N/A "なら??? –

+0

あなたの問題に関係のない部品をトリミングできますか?必要に応じて簡単な例を作成します。 [mcve] –

答えて

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 
+0

答えをありがとう、私はそれを簡単にし、エラーをフィルターに掛けることにしました。 –

関連する問題