2017-06-23 3 views
0

貼り付けたデータに基づいてデータを検索するテンプレートを別のワークシートに設定します。ループはVLOOKUPラインにコードを取得するVLOOKUPは、実行時エラー '1004'を生成します。

Private Sub GoNoGo() 

Dim i As Integer 
Dim OffInt As Integer 
Dim Neg As Integer 
Neg = -30 

Dim Ret As String 
Dim I3 As Cell 
Dim FindValue As String 

Worksheets("BF59520").Activate 
Range("AE3").Activate 
i = 3 
OffInt = 0 

Do Until ActiveCell.Offset(0, Neg).Value = "" 

    If ActiveCell.Offset(0, -1).Interior.Color = RGB(255, 235, 160) Then 
     ActiveCell.Offset(1, 0).Activate 
     i = i + 1 
    Else 
     ActiveCell.Value = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -18), Worksheets("Go No Go").Range("B2:O180"), 4, False) 

     ActiveCell.Offset(1, 0).Activate 
     i = i + 1 
    End If 
     OffInt = OffInt + 1 
Loop 

End Sub 

実行時エラー「1004」のエラーを返します:worksheetFunctionクラスのVLOOKUPプロパティを取得

はできません。

答えて

0

通常、ワークシート関数でエラーが発生すると、関数自体がエラーを返したことを意味します。適切な値を渡していることを確認してください。あなたが関数から正しい値を取得しますことを保証できないなら、あなたはそう

On Error Resume Next 
Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -18), Worksheets("Go No Go").Range("B2:O180"), 4, False) 
On Error GoTo 0 

のようにOn Errorを使用して試すことができます。また、そう

ActiveCell.Value = Evaluate("=IFERROR(VLOOKUP(" & ActiveCell.Offset(0,-18) & ", 'Go No Go'!B2:O180, 4, FALSE),0)") 
のように評価する声明の中でエラーをキャプチャすることができます

最初にvlookupが失敗したときにActiveCellに変更がない場合、2番目のオプションは 'IFERROR'関数の2番目の引数としてデフォルト値を設定できます。

希望すると便利です。

関連する問題