我正在尝试制定一个解决方案来跨工作簿共享我的大部分 VBA 代码库。这涉及创建一个.xlam
包含共享模块和类(+它们各自的工厂)的文件。
我愿意使用 Office 2007 出色的 RibbonUI,并让该.xlam
文件声明一个自定义选项卡(让我们MyTab
为参数起见调用它)。MyTab
如果用户具有特定权限(我通过 VBA 管理),我只需要显示一些元素。
除此之外,我希望我的其他工作簿能够将内容添加到MyTab
中,这些内容也可能具有动态元素(使用 VBA)。
我面临的问题是,每当我遇到工作簿引用AddIn.xlam
并声明动态功能区元素的情况时,Excel 都会尝试一次全部刷新,从而在两个单独的线程中调用 VBA 代码(我猜),最终失败(因为VBA在Excel中是单线程强制的),并生成空白对话框,上面只写“400”和两个按钮“OK”和“Help”。
有人有过如何最好地解决这个问题的经验吗?