美文网首页
27、[VBA入门到放弃笔记] 跨工作簿读取数据

27、[VBA入门到放弃笔记] 跨工作簿读取数据

作者: 叶知行 | 来源:发表于2017-06-19 10:36 被阅读1425次
  • 跨工作簿读取数据可以按以下思路来操作:
Paste_Image.png
  • 如上图,用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

相关文章

网友评论

      本文标题:27、[VBA入门到放弃笔记] 跨工作簿读取数据

      本文链接:https://www.haomeiwen.com/subject/phkgqxtx.html