Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何:具有多个工作簿级功能区项且具有动态属性的Excel功能区?_Xml_Vba_Add In_Excel 2007_Ribbon - Fatal编程技术网

Xml 如何:具有多个工作簿级功能区项且具有动态属性的Excel功能区?

Xml 如何:具有多个工作簿级功能区项且具有动态属性的Excel功能区?,xml,vba,add-in,excel-2007,ribbon,Xml,Vba,Add In,Excel 2007,Ribbon,我正在尝试制定一个解决方案,以便在工作簿中共享我的大部分VBA代码库。这涉及到创建一个.xlam文件,该文件将包含共享模块和类(+它们各自的工厂) 我愿意使用Office2007的精彩RibbonUI,并让.xlam文件声明一个自定义选项卡(为了便于讨论,我们称之为MyTab)。如果用户具有特定权限(我通过VBA进行管理),我需要MyTab仅显示某些元素 除此之外,我希望我的其他工作簿能够将内容添加到MyTab,其中可能还包含动态元素(使用VBA) 我面临的问题是,每当我遇到工作簿引用AddIn

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

我愿意使用Office2007的精彩RibbonUI,并让
.xlam
文件声明一个自定义选项卡(为了便于讨论,我们称之为
MyTab
)。如果用户具有特定权限(我通过VBA进行管理),我需要
MyTab
仅显示某些元素

除此之外,我希望我的其他工作簿能够将内容添加到
MyTab
,其中可能还包含动态元素(使用VBA)

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


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

您是否尝试过设置
Application.multi-threadedcalculation=False


我相信这将解决您的问题。

是否获取锁?根据我的经验,您不想在Excel中进行任何认真的开发。它以一种毫无意义的方式告诉你。我知道Excel不好。。。但我没有选择的余地(试图否决所有这些东西,但资源限制使我无法在几周内完成…),所以我只是想让它不那么痛苦。知道VBA不允许我同时运行两个单独的函数(这导致了这里的问题),我怎么能获得一个锁呢?我度假回来后会试试这个:)这部分解决了它。但它引发了其他问题。我想VBA的核心设计打破了我的用例。。。我现在要用其他方法…:)