美文网首页
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