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

Ovi*_*cov 9 excel vba excel-vba

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

我有这个代码:

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
Run Code Online (Sandbox Code Playgroud)

它不会返回任何错误,但它不会复制值,也会在最后一行尝试此操作

Src.Value = Dst.Value
Run Code Online (Sandbox Code Playgroud)

仍然无所作为

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

Ovi*_*cov 1

所以我设法让我的代码工作,问题出在手柄上,改变了这一点:

Set xlApp = GetObject(, "Excel.Application")
Run Code Online (Sandbox Code Playgroud)

Set xlApp = GetObject("c:\mypath\book1.xlsm").Application
Run Code Online (Sandbox Code Playgroud)

并且还使用之前答案中的建议更改了复制方法

因此,对于任何面临此问题的人来说,完整的工作代码是:

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
Run Code Online (Sandbox Code Playgroud)

感谢大家的帮助。