通过VBA将工作簿的命名范围数据复制到另一个工作簿

时间:2018-03-03 12:31:23

标签: excel-vba vba excel

我想使用VBA将命名范围从一个工作簿复制到另一个工作簿。

有三个文件:

  1. MACRO_PLACED.XLSM<<<<宏在这里

  2. SOURCE_DATA.XLSX<<<<数据在这里

  3. DESTINATION_DATA.XLSX<<<<要在此处复制的数据

  4. 最初,只打开第一个文件,其他两个文件保持关闭状态。

    source_data工作簿有多个工作表,destination_data工作簿与source_data具有相同的结构。在这两个文件中,Sheet1上都有一个命名范围,例如,如果数据位于" A1:C20"我将该范围命名为" RESULT"

    如何使用第一个文件中的VBA函数将该特定命名范围复制到目标文件?

1 个答案:

答案 0 :(得分:1)

如果我们想要将范围从一个地方复制到另一个地方,我们可以使用:

r1.Copy r2

现在我们需要的是一个允许执行此行的框架:

Sub KopyPaste()
    Dim r1 As Range, r2 As Range, w1 As Workbook, w2 As Workbook

    Set w2 = Workbooks.Open(Filename:="C:\TestFolder\DESTINATION_DATA.xlsx")

    Set w1 = Workbooks.Open(Filename:="C:\TestFolder\SOURCE_DATA.xlsx")
    Set r1 = Range("RESULT")
    sheetname = r1.Parent.Name
    addy = r1.Address

    Set r2 = w2.Sheets(sheetname).Range(addy)

    r1.Copy r2
End Sub

此时,您可以根据需要选择保存目的地。