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

问题描述 投票:0回答:2

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

有三个文件:

  1. MACRO_PLACED.XLSM <<<<宏在这里
  2. SOURCE_DATA.XLSX <<<<数据在这里
  3. DESTINATION_DATA.XLSX <<<<这里要复制的数据

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

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

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

excel-vba vba excel
2个回答
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

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


0
投票

您可以先打开这两个文件,然后在复制范围后保存并关闭它们。这是你可以做到的一种方式。它应该像这样工作:

Sub Copying()

Workbooks.Open ("INSERT FILE LOCATION HERE/SOURCE_DATA.XLSX")
Workbooks.Open ("INSERT THE OTHER FILE LOCATION HERE/DESTINATION_DATA.XLSX")

// Now Insert the code where you copy things (Don't forget to refer to your 
// the specific workbook

Workbooks("SOURCE_DATA.XLSX").Close SaveChanges:=True
Workbooks("DESTINATION_DATA.XLSX").Close SaveChanges:=True

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.