【问题标题】:Call an excel macro in specific instance of excel in VBA在 VBA 中的特定 excel 实例中调用 excel 宏
【发布时间】:2019-10-15 04:00:51
【问题描述】:

我在 32 位 Excel 365 中收到资源不足错误(64 位解决了这个问题,但我们的 IT 不允许使用这本书的用户数量,所以我坚持使用 32 -少量)。我有足够的内存,所以我试图将两个工作簿分成不同的实例以允许更多的内存分配(如果这是一个糟糕的策略,我很乐意知道为什么/替代方案!)。

我的设置有两个工作簿,工作簿 A 打开工作簿 B,工作簿 B 运行繁重的代码,然后将数据以值格式传输回工作簿 A。

Excel 实例 1:工作簿 A

Excel 实例 2:工作簿 B

我希望 WkbA(在 Excel 实例 1 中打开)调用在 Excel 实例 2 中打开的 WrkB 上的宏。我编写了下面的代码来尝试这个。

Dim WkbB As Object
Set WkbB = New Excel.Application
With WkbB
    .Visible = True
    .Workbooks.Open "P:\Root\WorkbookB.xlsm", True, False
End With

Application.Run "'WkbB.xlsm'!Main"

在“结束于”行,代码根据需要在两个单独的 Excel 实例中打开 WkbA 和 WrkB

Excel 实例 1:WrkA

Excel 实例 2:WrkB

但在 Application.Run 行,excel 在实例 1 中再次打开 WrkB

Excel 实例 1:WrkA 和 WrkB

Excel 实例 2:WrkB

而不是调用实例 2 WorkbookB 中的 Main 子例程。

【问题讨论】:

  • 当您说引用时,您是指在 excel 公式中还是在 vba 代码中?公式方面的 WrkB 没有引用 WrkA,如果您能提供示例,我很乐意尝试删除所有引用,看看是否可以修复它

标签: excel vba memory out-of-memory instance


【解决方案1】:

改变

Application.Run "'WkbB.xlsm'!Main"

WrkB.Run "'WorkbookB.xlsm'!Main"

【讨论】:

  • 就是这样!谢谢!我喜欢简单的答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-10
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多