来自封闭工作簿的Excel VBA vlookup,具有动态范围

时间:2018-07-26 17:10:02

标签: vba excel-vba vlookup

我是VBA的超级初学者,但在我的入门级财务分析师工作中设法完成了一些小项目。我在想进行的过程改进上遇到困难。

我想加快从工作簿中获取vlookup数据并将其放入主文件的过程。以前,此过程始终只是在第二个工作簿和主工作簿都打开的情况下从第二个工作簿进行vlookup。由于主文件的大小,这可能需要一些时间。

我的最终目标是拥有一个我可以运行的代码,将vlookups放入关闭的第二个工作簿中,并将vlookup结果导入到主文件中,而不必打开第二个工作簿。我面临的挑战是第二个工作簿中的行数每月变化(但列保持不变)。因此,我需要某种类型的动态范围来适应不断变化的行长(?)(顺便说一句,我已经花了几天时间搜索stackoverflow,但至少找不到适用于我的项目的先前修复程序,使用我目前拥有的术语。

工作簿的一些信息和图片:

主工作簿-在单元格A3中包含大约415,000行的贷款ID。

第二本工作簿-从B2开始包含大约189,000行的贷款ID,并从E2开始具有服务费。

我需要这些服务费,才能从BK3单元格进入Master Workbook。 “主工作簿”和“第二工作簿”行每个月都会更改,因此我一直在尝试使我的代码适应此更改。顺便说一句,这些列保持不变。下面的代码与过去一天中我返回值非常接近。但是,当我过滤以查看值时,它仅显示0。 #N / A很好,因为我只希望匹配的贷款能够返回价值。

我如何解决/改进此代码?

位于代码下方的图片

Sub vlookup()

With Workbooks("Stratifier''SVC Fee Macro.xlsm").Sheets("Loan Level")

    Dim lRow as Long
    lRow = .Range("A" & .Rows.Count).End(xlUp).Row

    With .Range("BK3:BK" & lRow)

    .FormulaR1C1 = "=vlookup(RC[-63],[SS.xlsx]Sheet1!C2:C5,4,0)"
    .Value = .Value

    End With

End With

End Sub

下面的图片

Master Workbook

Second Workbook

Closest Attempt

感谢所有提示/技巧/建议,谢谢!

0 个答案:

没有答案