Excel vba:如何将单元格数据从当前工作簿复制到另一个工作簿而不打开它

问题描述 投票:0回答:1

我有工作簿:1) Bill.xlsm 2) Stockbook.xlsm

现在我想将单元格数据(股票销售/购买)从“BILL.XLSM”!当前打开的Sheet1复制到“stockbook.xlsm”!Sheet1范围C1:C5

我不想打开“STOCK..”工作簿并挂起当前工作簿。

我只想复制数据。

有没有什么方法,无需在vba中打开工作簿,只需将数据复制到特定工作簿中存储的特定工作表(如何引用?以及如何保存数据?)
从 - BILL.xlsm !Sheet1 范围 A1:A5 到“Stock...xlsm”!Sheet1 范围 C1:C5

感谢您提前提供解决方案

我尝试用谷歌方法以隐藏模式打开另一个工作簿,并将当前打开的工作簿中的数据复制粘贴到另一个关闭的工作簿中...但没有找到..

excel
1个回答
0
投票

您无法使用 VBA 来完成此操作,并且使用任何语言都很难做到这一点。

首先我们需要消除你的神话“上吊”场景。在 VBA 中打开工作簿不会导致 VBA 挂起 - 除非您编写了一些导致该情况的代码。

例如 - 您正在打开的工作簿可能有一个导致问题的 Workbook_Open 宏。如果是这样,那么您可以禁用它。请参阅从 VBA 打开工作簿并禁用 Workbook_Open() 代码?

此代码片段将在禁用其他工作簿中的宏后将值从当前工作簿复制到另一个工作簿。

Sub demo()
    Dim wb As Workbook
    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    Set wb = Workbooks.Open("C:\Dev\BookToOpenWithMacros.xlsm")
    wb.Sheets(1).Range("A1:B3").Value = ThisWorkbook.Sheets(1).Range("A1:B3").Value
    wb.Close SaveChanges:=True
    Application.AutomationSecurity = msoAutomationSecurityLow
    MsgBox "the macro continued to run"
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.