2017-07-11 11 views
0

次のコードを使用して、VBAを使用して別のブックにvlookupを実行しています。 問題なく動作しますが、今は単一のセルを見るだけでなく、範囲をループすることも欲しいと思います。 T15:T200としましょう。複数のブックのExcel vba vlookupの範囲

これを行うコードを変更するのを助けることができる人は誰ですか?

Sub VlookMultipleWorkbooksBACKUP() 

    Dim lookFor As Range 
    Dim srchRange As Range 

    Dim book1 As Workbook 
    Dim book2 As Workbook 

    Dim book2Name As String 
    book2Name = "testbog.xlsx" 

    Dim book2NamePath As String 
    book2NamePath = ThisWorkbook.Path & "\" & book2Name 

    Set book1 = ThisWorkbook 

    If IsOpen(book2Name) = False Then Workbooks.Open (book2NamePath) 
    Set book2 = Workbooks(book2Name) 


    Set lookFor = book1.Sheets(1).Cells(15, 20) ' value to find 
    Set srchRange = book2.Sheets(1).Range("A:B") 'source 

    lookFor.Offset(0, 20).Value = Application.Vlookup(lookFor, srchRange, 2, False) 

End Sub 

ありがとう!

答えて

2

はちょうどあなたのコードの最後の部分でループを含み、そして代わりに15のループカウンタ変数を使用します。私の `Vlookup`赤ちゃんを取るための

'... 
    Set book2 = Workbooks(book2Name) 
    Set srchRange = book2.Sheets(1).Range("A:B") 'source 
    Dim r As Long 
    For r = 15 To 200 
     Set lookFor = book1.Sheets(1).Cells(r, 20) ' value to find 

     lookFor.Offset(0, 20).Value = Application.Vlookup(lookFor, srchRange, 2, False) 
    Next 
End Sub 
+0

+1をしていますが、どこシナリオを処理することを忘れ'Vlookup'は一致するものが見つからないので、エラーが返されます –

+0

@ShaiRado' Application.VLookup'が一致しなかった場合、エラーを返します( '#N/A'と同じです)。その '#N/A'エラー状態に設定してください。これは、「VLookup」が失敗したことを示す合理的な方法です。 – YowE3K

+0

@ShaiRado - 私は別の側からそれを "盗んだ"。あなたがそれを書いたなら、それは非常に感謝しているはずです! :) YowE3K-ありがとう、それは完璧な作業です! – JBKrarup

関連する問題