2016-11-03 6 views
0

VLOOKUPコードに基づいてデータを入力していますが、エラーが発生し続けます。アプリケーションVLOOKUP no value

For Each Cell In Rng 
    Cell.Offset(0, 2).Value = Application.WorksheetFunction.VLookup(Cell, Table2, 1, False) 

    Next 

私は列Cは、VLOOKUP値を投稿したり、メッセージ「戻された項目スキャンされません」を返すようにどちらかたい。私はこれを行うにはエラーハンドラを使用していましたが、この実行時にエラーが発生し続けます。

  'MyErrorHandler: 
      ' If Err.Number = 1004 Then 
      '  Cell.Offset(0, 2).Value = "Returned Item Not Scanned" 
      ' ElseIf Err.Number = 13 Then 
      ' MsgBox "Incorrect Exceptions Data." 
      ' Else 
      ' 
      ' End If 

エラーは、 'WorksheetFunctionクラスのVLookupプロパティを取得できません。

誰でも手助けできますか?

+0

私はこれを手動で行う場合の式はこれで追加するのを忘れ - = IFERROR(VLOOKUP(A3、「311Aデータ '!A:A、1、FALSE)、 "返されたアイテムはスキャンされません" –

+0

まず、 'Table1'とは何ですか? - 第二にあなたは間違った数式を使用しています。 '= VLOOKUP()'ではなく '= MATCH()'を使用します –

+0

表1は '311A Data'の範囲ですA:A –

答えて

1

エラーをトラップするには、以下のコードを試してください。Application.VLookupを使用しています。

が(この方法でVLookupエラーをトラップすると、あなたがErr.Numberのために1004を取得されていません)

Option Explicit 

Sub VLookup_with_ErrHandling() 

Dim Cell    As Range 
Dim Rng     As Range 
Dim Table2    As Range 

' modify "Table2" range to your needs 
Set Table2 = Sheets("Sheet1").Range("A1:C20") 

' modify "Rng" range to your needs 
Set Rng = Sheets("Sheet2").Range("A1:A10") 

For Each Cell In Rng 
    If Not IsError(Application.VLookup(Cell, Table2, 1, False)) Then 
     Cell.Offset(0, 2).Value = Application.VLookup(Cell, Table2, 1, False) 
    Else 
     Cell.Offset(0, 2).Value = "Returned Item Not Scanned" 
    End If 
Next 

End Sub 
+0

作品は完璧なShaiありがとうございます。 –