Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将动态范围从一个Excel工作簿导入到另一个Excel工作簿_Excel_Vba - Fatal编程技术网

将动态范围从一个Excel工作簿导入到另一个Excel工作簿

将动态范围从一个Excel工作簿导入到另一个Excel工作簿,excel,vba,Excel,Vba,我是VBA新手,需要以下方面的帮助: 我有3本Excel工作簿(wb1、wb2和wb3)。wb1和wb2都包含A列(日期)和B列(数字)。每月向两列添加新数据。wb1和wb2存储在同一文件夹中 在wb3中,我根据wb1或wb2的数据进行计算。因此,我需要在wb3的下拉列表中选择相应的工作簿(wb1或wb2)。然后,我选择的动态数据范围应复制到wb3中。设置 两个工作簿保存在一个文件夹中 对.xlsm工作簿进行数据验证。 在运行代码之前,请关闭.xlsx工作簿。代码将打开和关闭所选工作簿 选择

我是VBA新手,需要以下方面的帮助:

我有3本Excel工作簿(wb1、wb2和wb3)。wb1和wb2都包含A列(日期)和B列(数字)。每月向两列添加新数据。wb1和wb2存储在同一文件夹中


在wb3中,我根据wb1或wb2的数据进行计算。因此,我需要在wb3的下拉列表中选择相应的工作簿(wb1或wb2)。然后,我选择的动态数据范围应复制到wb3中。

设置

两个工作簿保存在一个文件夹中

对.xlsm工作簿进行数据验证。

在运行代码之前,请关闭.xlsx工作簿。代码将打开和关闭所选工作簿

选择工作簿并单击按钮

    Sub Button3_Click()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lstRw As Long
    Dim rng As Range
    Dim GetRng As String
    Dim MyDir As String
    Dim MyFile As String

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    GetRng = ws.Range("A2")

    MyDir = "C:\Users\Dave\Downloads\SampleFolder\"    'change folder location"
    MyFile = Dir(MyDir & GetRng & "*.xlsx")
    ChDir MyDir

    Application.ScreenUpdating = 0
    Application.DisplayAlerts = 0

    Workbooks.Open (MyFile)

    With Worksheets("Sheet1")

        lstRw = .Cells(Rows.Count, "A").End(xlUp).Row
        Set rng = Range(.Cells(2, 1), .Cells(lstRw, 2))
        rng.Copy ws.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
        ActiveWorkbook.Close True

    End With

    Application.DisplayAlerts = 1
    MyFile = Dir()


End Sub