复制两个Excel实例之间的范围

我正在运行Excel的两个单独的实例,我试图将数据从一个工作簿中的范围复制到另一个。

我有这个代码:

Sub CopyValues() Dim xlApp As Excel.Application Set xlApp = GetObject(, "Excel.Application") Dim Src As Range Dim Dst As Range Set Src = xlApp.ActiveSheet.Range("A1:A9") Set Dst = Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1:A9") Src.Copy Dst End Sub 

它不会返回任何错误,但它不会复制值,也试过这最后一行

 Src.Value = Dst.Value 

仍然没有做什么

我的VBA技能不太好,刚开始学习2周前。

如果你想避免使用剪贴板,并假设你的另一个Excel(xlApp)实例的句柄是正确的,那么你应该能够使用一个数组来获取和设置你的数据。

 Sub CopyValues() Dim xlApp As Excel.Application Dim Src As Range Dim Dst As Range Dim Vals() as Variant Set xlApp = GetObject(, "Excel.Application") Set Src = xlApp.ActiveSheet.Range("A1:A9") Set Dst = Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1:A9") Vals = Src Dst.Value = Vals End Sub 

所以我设法让我的代码工作,问题是与句柄,改变了这一点:

 Set xlApp = GetObject(, "Excel.Application") 

 Set xlApp = GetObject("c:\mypath\book1.xlsm").Application 

还改变了使用上一个答案的build议的复制方法

所以面对这个问题的任何人的完整工作代码是:

 Sub CopyValues() Dim xlApp As Excel.Application Dim Src As Range Dim Dst As Range Dim Vals() as Variant Set xlApp = GetObject("c:\mypath\book1.xlsm").Application Set Src = xlApp.ActiveSheet.Range("A1:A9") Set Dst = Workbooks("Book2.xlsm").Worksheets("Sheet1").Range("A1:A9") Vals = Src Dst.Value = Vals End Sub 

感谢大家的帮助。