在 VBA 中 excel 的特定实例中调用 excel 宏

Call an excel macro in specific instance of excel in VBA

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

我的设置有两个工作簿,工作簿 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"

在 'End With' 行,代码根据需要在两个单独的 Excel 实例中打开 WkbA 和 WrkB

Excel实例1:WrkA

Excel实例2:WrkB

但是在 Application.Run 行 excel 在实例 1

中再次打开 WrkB

Excel 实例 1:WrkA 和 WrkB

Excel实例2:WrkB

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

改变

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

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