0

我正在尝试制定一个解决方案来跨工作簿共享我的大部分 VBA 代码库。这涉及创建一个.xlam包含共享模块和类(+它们各自的工厂)的文件。

我愿意使用 Office 2007 出色的 RibbonUI,并让该.xlam文件声明一个自定义选项卡(让我们MyTab为参数起见调用它)。MyTab如果用户具有特定权限(我通过 VBA 管理),我只需要显示一些元素。

除此之外,我希望我的其他工作簿能够将内容添加到MyTab中,这些内容也可能具有动态元素(使用 VBA)。

我面临的问题是,每当我遇到工作簿引用AddIn.xlam并声明动态功能区元素的情况时,Excel 都会尝试一次全部刷新,从而在两个单独的线程中调用 VBA 代码(我猜),最终失败(因为VBA在Excel中是单线程强制的),并生成空白对话框,上面只写“400”和两个按钮“OK”和“Help”。

有人有过如何最好地解决这个问题的经验吗?

4

1 回答 1

0

您是否尝试过设置Application.MultiThreadedCalculation = False.

我相信这会纠正你的问题。

于 2009-12-23T19:24:16.853 回答