复制两个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
感谢大家的帮助。