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

时间:2015-09-05 05:38:22

标签: excel-vba vba excel

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

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

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

1 个答案:

答案 0 :(得分:1)

设置

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

enter image description here

.xlsm工作簿上的数据验证。

enter image description here

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

选择工作簿,然后点击按钮

enter image description here

    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