简体   繁体   English

多个工作簿中的Excel VBA vlookup范围

[英]Excel vba vlookup range in multiple workbooks

I'm using the following code to do a vlookup into another Workbook using VBA. 我正在使用以下代码使用VBA在另一个工作簿中进行vlookup。 It's working without any issues, but now I would like it not only to look at a single cell, but loop through a range. 它的工作没有任何问题,但现在我不仅希望查看单个单元格,还希望遍历整个范围。 Let's say T15:T200. 假设T15:T200。

Anyone who can help modify the code to do this? 任何人都可以帮助修改代码来做到这一点?

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

Thanks! 谢谢!

Just include a loop in the last part of your code, and use the loop counter variable instead of 15 : 只需在代码的最后部分添加一个循环,然后使用循环计数器变量而不是15

'...
    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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM