首页 > 解决方案 > 在 VBA 中的特定 excel 实例中调用 excel 宏

问题描述

我在 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 子例程。

标签: excelvbamemoryout-of-memoryinstance

解决方案


改变

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

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

推荐阅读