- 跨工作簿读取数据可以按以下思路来操作:
- 如上图,用Vlookup函数查询另一个工作簿的数据,要想公式能够有效,需要同时打开2个工作簿。
- 因此,使用VBA代替上面的Vlookup函数查询,其道理一样。
- 1、打开查询的数据所在的工作簿(指定的)。
- 2、用代码获取需要的数据,实现目的。
- 3、关闭数据工作簿(不保存更改)。
- 4、以上步骤使用VBA操作来代替人工。
Sub 跨工作簿查询()
Dim Sht As Worksheet '查询工作表
Dim wkb_data As Workbook '数据工作簿
Dim fullpath As String '路径带工作簿名称
Dim i As Long
fullpath = ThisWorkbook.Path & "\小狗.xlsx"
Application.ScreenUpdating = False
'第一部分:打开工作簿
Set Sht = ThisWorkbook.Sheets("查询表") '数据查询表
Set wkb_data = Workbooks.Open(fullpath) '打开数据所在的工作簿
'第二部分:vba代码操作,获取目标数据
With Sheets("数据表")
For i = 2 To Sht.Cells(Rows.Count, 1).End(xlUp).Row '遍历查询表要查询数据的部门
For j = 2 To .Cells(Rows.Count, 1).End(xlUp).Row '遍历数据
If Sht.Cells(i, 1) = .Cells(j, 1) Then '按部门查询
Sht.Cells(i, 2) = .Cells(j, 2) '输出销售额
Exit For '有结果就退出当前循环,不再继续遍历下去
End If
Next
Next
End With
'第三部分:关闭工作簿
wkb_data.Close False '关闭工作簿,不保存更改
Set wkb_data = Nothing '释放对象变量
Application.ScreenUpdating = True
End Sub
-
得出结果:
Paste_Image.png
网友评论