【问题标题】:Performing Vlookup from different workbook从不同的工作簿执行 Vlookup
【发布时间】:2021-02-10 01:14:20
【问题描述】:

我正在尝试使用 VBA 进行 vlookup。参考数据在另一个工作簿中。
我正在考虑为数据工作簿和工作表分配一个变量,但无法使其工作。子程序运行,但未在所需的工作表中返回任何结果。

WbVlookup 是 vlookup 数据工作簿的变量
BuildplanRange 是 vlookup 数据范围的变量
代码需要从第 14 行运行到最后一个结果行

在我看来,该变量未正确分配给工作簿和数据范围,但我无法找出问题所在。

Sub VlookupForColumnGHIJ()

Dim EndofRow As Long
Dim RowX As Integer
Dim WbVlookup As Workbook
Dim BuildplanRange As Range

Set WbVlookup = Workbooks.Open("C:\Users\DengSilin\Downloads\Copy of 98289 (FL512S)_Allocation File_WW18 (002)_Cindy_02022021.xlsx")
Set BuilPlanRange = WbVlookup.Worksheets("Build Plan").Column("F:I")

EndofRow = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
For RowX = 14 To EndofRow
    Cells(RowX, 6) = Application.WorksheetFunction.VLookup(Cells(RowX, 3), BuilPlanRange, 2, 0)
Next RowX

End Sub

【问题讨论】:

    标签: excel vba vlookup


    【解决方案1】:

    您的代码假设哪个工作簿是Active。我的建议是养成一个习惯,总是完全参考你的工作簿和工作表,这样可以节省很多时间来追踪错误。

    所以你的代码以

    开头
    Dim WbVlookup As Workbook
    Dim BuildplanRange As Range
    Set WbVlookup = Workbooks.Open("C:\Users\DengSilin\Downloads\Copy of 98289 (FL512S)_Allocation File_WW18 (002)_Cindy_02022021.xlsx")
    Set BuilPlanRange = WbVlookup.Worksheets("Build Plan").Column("F:I")
    

    这是非常明确和明确的。但接下来,你引用的是Cells

    EndofRow = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
    

    在这种情况下,Cells 默认引用当前的ActiveWorkbook。因为您刚刚打开了WbVlookup 工作簿,所以这很可能是您的活动工作簿。我猜这不是你想要的。

    所以快速改变一下可能会奏效

    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = Thisworkbook
    Set ws = wb.Sheets("IwantThisSheet")
    
    Dim EndofRow As Long
    With ws
        EndofRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        For RowX = 14 To EndofRow
            .Cells(RowX, 6) = Application.WorksheetFunction.VLookup(.Cells(RowX, 3), _
                                                                 BuilPlanRange, 2, 0)
        Next RowX
    End With
    

    【讨论】:

    • 天哪,它有效!我昨天整个下午都在挣扎,试图弄清楚为什么它不起作用!谢谢,我应该早点寻求帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多