【发布时间】: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