2017-09-29 8 views
0

VBAでvlookupループをセットアップする必要があります。 私は最初の行で動作するようになっていますが、ルックアップセルを汎用にする必要があります。今、B3はA3を探していますが、B4はA4を探すためにB4もA3を探しています。VBA vlookup汎用コードの前のセル

設定した範囲の代わりに前回選択したセルをルックアップする方法を知っている人はいますか?

これはこれまでのところ私のコードです:

Range("A3").Select 

    Do Until ActiveCell.Value = " " 
     ActiveCell.Offset(0, 1).Select 
     ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("A3"), Sheets("HD Extract").Range("Extract"), 4, False) 
     ActiveCell.Offset(0, 1).Select 
     ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("B3"), Sheets("HD Extract").Range("Wordings"), 2, False) 
     ActiveCell.Offset(0, 1).Select 
     ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("C3"), Sheets("HD Extract").Range("PriorityRank"), 3, False) 
     ActiveCell.Offset(0, 1).Select 
     ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("C3"), Sheets("HD Extract").Range("Wordings"), 5, False) 
     ActiveCell.Offset(1, -4).Select 
    Loop 

答えて

0

は、以下のコードを試してみてください - それは非常に一般的なものです。変更が必要になります(あなたのvlookupの列はあなたのvlookupの範囲と共に調整する必要があります)が、一般的な原則が成り立ちます。

lastrow = Cells(Activesheet.Rows.Count,1).End(xlUp).Row 
For r = 3 to lastrow 
    For c = 2 to 5 
     Cells(r,c).Value = Application.WorksheetFunction.Vlookup(Sheets("test").Range(Cells(r,c-1), Sheets("HD Extract").Range("Extract"), 4,False) 
     If Cells(r,c).Value = " " Then GoTo nextstep 
    Next r 
Next c 
Nextstep: 
+0

"LastRow ="行で「コンパイルエラー:変数が定義されていません」というメッセージが表示されます。何か不足していますか? –

+0

@MaryKateWyatt Option Explicitを使用する場合は、Dim lastrow as Longと宣言する必要があります。また、ループに基づいてデータをどのように表示するかを調整する必要があります。 –

関連する問題