【发布时间】:2010-12-28 19:23:27
【问题描述】:
我正在尝试制定一个解决方案,以便在工作簿之间共享我的大部分 VBA 代码库。这涉及创建一个 .xlam 文件,该文件将包含共享模块和类(+ 它们各自的工厂)。
我愿意使用 Office 2007 出色的 RibbonUI,并让 .xlam 文件声明一个自定义选项卡(为了论证,我们将其称为 MyTab)。如果用户具有特定权限(我通过 VBA 管理),我需要 MyTab 仅显示一些元素。
除此之外,我希望我的其他工作簿能够将内容添加到 MyTab,其中可能还包含动态元素(使用 VBA)。
我面临的问题是,每当我遇到工作簿引用 AddIn.xlam 并声明动态功能区元素的情况时,Excel 都会尝试一次全部刷新,从而在两个单独的线程中调用 VBA 代码(我猜),最终会失败(因为 VBA 在 Excel 中是单线程强制的),并生成空白对话框,上面只写有“400”和两个按钮“OK”和“Help”。
有人对如何最好地解决这个问题有经验吗?
【问题讨论】:
-
获取锁?根据我的经验,您不想在 Excel 中进行任何认真的开发。它以没有任何意义的方式欺骗你。
-
我知道 Excel 不好......但我没有选择(试图弃用所有这些东西,但资源限制使我无法在几周内完成......) ,所以我只是想让它不那么痛苦。知道 VBA 不应该允许我一次运行两个单独的函数,我怎么能获得锁(这导致了这里的问题)。
标签: xml vba add-in excel-2007 ribbon