【问题标题】:How to reference a workbook from another excel instance如何从另一个 excel 实例中引用工作簿
【发布时间】:2018-12-24 06:07:05
【问题描述】:

我相信我的问题相当简单:我有一个工作簿,我正在使用它从另一个软件 (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

提前谢谢你。

【问题讨论】:

  • 为什么要在不同的实例中运行 Excel?
  • 你把这件事搞得太复杂了……(这就是所谓的XY Problem。)

标签: vba excel object instance


【解决方案1】:

不需要需要多个 Excel 实例,并且您不需要打开 Excel 文件即可从中获取信息,无论是使用 VBA ,甚至使用常规的“链接公式”。

例如:

=SUM([C:\yourPath\Filename.xlsx]SheetName!A1:C25)

...返回位于C:\yourPath\Filename.xlsx 的Excel 文件中名为Sheetname 的工作表上的单元格A1:C25 的总和。

或者你可以直接用Get External Data导入所有数据。


见:

...有关更多信息和示例,请在 Google 上搜索 "get data from another Excel workbook"

【讨论】:

  • 嘿,今天达到 10K 了吗?恭喜! ;-)
  • @MathieuGuindon 我已经“如此接近但到目前为止”好几天了,不过我一直在努力!最后一点是最艰难的!不会撒谎,这让我有点发疯......但是谢谢!
  • 很高兴知道,我还在学习 VBA,所以一切对我来说都是新的。
  • 唯一的问题是我需要多次运行这段代码(大约 20000 次),并且每次都执行这个复制和粘贴的过程。我从 (SAP) 获取数据的软件每次运行时都会自动打开 .xlsx 工作簿,并在另一个实例中打开它。所以我也需要一些方法来关闭这个工作簿,以免在代码循环结束时有 20000 个不同的打开工作簿。
  • 正确 - 因此是 attached link 中概述的“获取外部数据”选项。您可以一次获取所有数据,可以是副本,也可以是指向当前文件的永久链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 2011-04-18
  • 2013-08-16
  • 1970-01-01
相关资源
最近更新 更多