在单独的Excel实例之间复制和粘贴的VBA代码

在单独的Excel实例之间复制和粘贴的VBA代码,vba,excel,Vba,Excel,我试图从excel中的一个打开实例复制数据,并将其加载到一个单独的打开实例中。我有以下代码,但它只复制自上次保存以来源工作簿中的数据。此外,此代码只能从目标工作簿运行。任何帮助都将不胜感激 Sub CollectA() Dim oApp As Application Dim oWb As Workbook Set oWb = GetObject("Test two.xlsm") Set oApp = oWb.Parent oWb.Activate oWb.ActiveSheet.Range("

我试图从excel中的一个打开实例复制数据,并将其加载到一个单独的打开实例中。我有以下代码,但它只复制自上次保存以来源工作簿中的数据。此外,此代码只能从目标工作簿运行。任何帮助都将不胜感激

Sub CollectA()

Dim oApp As Application
Dim oWb As Workbook
Set oWb = GetObject("Test two.xlsm")
Set oApp = oWb.Parent
oWb.Activate
oWb.ActiveSheet.Range("A1").Select
Selection.Copy


Workbooks("Test three.xlsm").Worksheets("Sheet1").Range("B1").PasteSpecial  Paste:=xlPasteValues


End Sub

尽可能避免复制/粘贴:

Sub CollectA()

    Dim oWb As Workbook
    Set oWb = GetObject("Test two.xlsm")

    Workbooks("Test three.xlsm").Worksheets("Sheet1").Range("B1").Value = oWb.ActiveSheet.Range("A1").Value

End Sub
如果希望宏处于测试2中:

Sub CollectA()

    Dim oWb As Workbook
    Set oWb = GetObject("Test three.xlsm")

    owb.Worksheets("Sheet1").Range("B1").Value = Workbooks("Test two.xlsm").ActiveSheet.Range("A1").Value

End Sub

复制/粘贴在不同的实例中会很困难,但为什么您甚至需要复制/粘贴-您似乎只需要值,所以只需使用WorkbooksTest three.xlsm.WorksheetsSheet1.RangeB1.Value=oWb.ActiveSheet.RangeA1.Value。是的,我只需要值。感谢代码简化。我仍在寻找一种从源工作簿推送数据的方法。如果您想用另一种方法推送数据,请将宏放在测试二工作簿中,然后从那里打开测试三工作簿。感谢您的快速跟进。不幸的是,当我运行新代码时,它什么也不做。此外,由于某种原因,在运行新代码后,如果我关闭工作簿“Test Three”并尝试重新打开它,我只会看到一个灰色的Excel屏幕。为什么需要在不同的Excel实例中打开工作簿?