【发布时间】:2014-12-31 14:51:01
【问题描述】:
我正在运行两个单独的 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 技能不太好,两周前才开始学习。
【问题讨论】:
-
您实际上是打开了多个 Excel 实例,还是仅在一个实例中打开了多个文件?
-
两件事:你为什么使用
ActiveSheet?您应该为Src定义工作表。另外,试试Src.Copy和Dst.PasteSpecial xlPasteValues? -
能否提供 Excel 的版本? XL2013 对应用程序窗口和实例的处理与早期版本略有不同。
-
使用
GetObject绝不是捕获程序的多个实例的好方法。您需要控制第二个实例的打开。为什么有两个实例是不可避免的?