我想使用VBA将命名范围从一个工作簿复制到另一个工作簿。
有三个文件:
最初,只打开第一个文件,其他两个文件保持关闭状态。
source_data工作簿有多个工作表,destination_data工作簿与source_data具有相同的结构。在这两个文件中,Sheet1上都有一个命名范围,例如,如果数据位于“A1:C20”中,我将该范围命名为“RESULT”
如何使用第一个文件中的VBA函数将该特定命名范围复制到目标文件?
如果我们想要将范围从一个地方复制到另一个地方我们可以使用:
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
此时,您可以根据需要选择保存目的地。
您可以先打开这两个文件,然后在复制范围后保存并关闭它们。这是你可以做到的一种方式。它应该像这样工作:
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