我有一个Excel 2007的自定义功能区加载项,在某些特定情况下会产生错误。错误窗口是带有红色X的vbCritical类型错误,并且完全空白,只有一个" OK"按钮。功能区中的20个左右命令中的每个命令都会产生错误,导致用户多次单击以清除错误,之后恢复正常执行而对操作没有明显影响。
从我的研究到目前为止,我已经确定,当Excel不是最顶层的活动窗口时,当Excel在后台尝试某些功能区操作时,会发生这种情况。
在我的情况下,它在创建新工作簿时很少发生,并且每次尝试将加载项中的宏命令添加到quicktools菜单时。我相信这是因为quicktools窗口位于活动的Excel实例之上。
关于这个主题的其他线程已经建议在无法立即执行时调用的Ribbon.Invalidate将产生错误。此外,每当" getVisible"或" getEnabled"执行UI命令。但是,我没有在线程期间的任何地方调用Ribbon.Invalidate,只是在隔离和更改键绑定之后,在创建工作簿时都没有执行任何操作或者将命令分配给quicktools。另外,我没有使用" getVisible"或" getEnabled"命令在customUI.xml或VBA代码中的任何位置。
此刻我不知所措。我们非常感谢您提供的任何帮助。
答案 0 :(得分:0)
经过一些额外的研究,我终于发现了错误的来源。
既不是对Invalidate的调用,也不是对错误命令的调用。相反,事实证明这是因为我使用的是非16x16大小的图像,而不是Microsoft标准图像(imageMSO)文件。
棘手的错误。如果我打算使用自定义图标(我这样做),看起来没有办法对付它。我非常不喜欢这种功能。