我需要为2个工作簿中的数据运行Vlookups。我将在运行VBA代码时打开两个工作簿,并将两个工作簿都保存为.xlsm,以便它们都启用宏。2个工作簿中的Vlookup
我使用Vlookup Excel函数没有问题,但我想使用VBA代码自动运行它。
这里是信息,
我有2个工作簿,Book3.xlsm和Book32.xlsm。 Book3是我想要的结果,如第二张照片所示。数据范围每个月都有所不同,所以我需要遍历最后一行的末尾。
我在Book3 ID和类型和结果中有3列,在Book32,ID和Result中有2列,我想使用Book3中的ID列做Vlookup并获取Book32中Result列的值。数据都在Sheet1中。
现在我的代码会运行,但请查找没有显示所需结果的第一张图片。如果找不到,我可以将值保留为#N/A,但在这种情况下,应该使用Vlookup查找所有值。
这里是我的代码,
Sub test()
On Error Resume Next
Dim Res_Row As Integer
Dim Res_Clm As Integer
Dim Table1 As Range
Dim Table2 As Range
Dim cl As Range
Set Table1 = Workbooks("Book3.xlsm").Sheets("Sheet1").Columns("A:C")
Set Table2 = Workbooks("Book32.xlsm").Sheets("Sheet1").Columns("A:B")
Res_Row = Sheet1.Range("C2").Row
Res_Clm = Sheet1.Range("C2").Column
For Each cl In Table1
Sheet1.Cells(Res_Row, Res_Clm) = Application.WorksheetFunction.VLookup(cl, Table2, 2, False)
Res_Row = Res_Row + 1
Next cl
MsgBox "Done"
End Sub
我注意到,当查找值不是[从AZ排序](http://blog.contextures.com/archives/2016/03/03/excel-vlookup-sorting-problem/)或[最小到最大](https://www.ablebits.com/office-addins-blog/2014/08/27/excel-vlookup-not-working/)和[一些其他预期的东西](https://www.ablebits .com/office-addins-blog/2014/04/09/why-excel-vlookup-not-working /),我倾向于尽可能避免它,因为它在过去给我带来麻烦,我个人建议做一个改为UDF。 – Sgdva