我相信我的问题很简单:我有一本工作簿,正在使用它从另一个软件(SAP)中获取一些数据。当我从软件中导出数据时,它会自动打开一个.xlsx文件,然后我需要做的是从该文件中复制一些数据,粘贴到我的原始工作簿上,然后关闭该文件。我的代码中给我错误的部分是这个:
fileName = "temp1.xlsx"
Set wbBasis = Workbooks(fileName)
之所以会这样,是因为SAP软件打开的“ temp1.xlsx”文件在另一个excel实例中,所以我的代码找不到它。
我基本上需要知道的是这个。如何在原始代码中正确引用此“ temp1.xlsx”工作簿,以便能够对其进行编辑,从中复制内容,将其关闭等。
我发现了一些与我的问题类似的主题,例如我在此处列出的两个主题,但是无法根据我的情况调整解决方案,这就是为什么我发布了这个新主题。
Having multiple excel instances launched, how can I get the Application Object for all of them?
Finding a workbook in one of multiple Excel instances
谢谢。
答案 0 :(得分:2)
您不需要需要多个Excel实例,并且您不需要打开Excel文件即可通过VBA从中获取信息,甚至使用常规的“链接公式”。
例如:
=SUM([C:\yourPath\Filename.xlsx]SheetName!A1:C25)
...返回位于A1:C25
的Excel文件中名为Sheetname
的工作表上的单元格之和C:\yourPath\Filename.xlsx
。
或者您可以直接使用Get External Data
导入所有数据。
...有关更多信息和示例,请在Google上搜索"get data from another Excel workbook"。