Vba Excel 2007自定义功能区生成空白错误弹出窗口

Vba Excel 2007自定义功能区生成空白错误弹出窗口,vba,excel,popup,ribbon,Vba,Excel,Popup,Ribbon,我有一个用于Excel 2007的自定义功能区加载项,在某些特定情况下会产生错误。“错误”窗口是一个带有红色X的vbCritical类型错误,只有一个“确定”按钮,该窗口完全为空。功能区中大约20个命令中的每个命令都会产生错误,导致用户多次单击以清除错误,然后恢复正常执行,对操作没有明显影响 根据我迄今为止的研究,我已经确定,当Excel不是最上面的活动窗口时,Excel在后台尝试某些功能区操作时,会在Excel 2007中发生这种情况 在我的例子中,创建新工作簿时以及每次尝试将外接程序中的宏命

我有一个用于Excel 2007的自定义功能区加载项,在某些特定情况下会产生错误。“错误”窗口是一个带有红色X的vbCritical类型错误,只有一个“确定”按钮,该窗口完全为空。功能区中大约20个命令中的每个命令都会产生错误,导致用户多次单击以清除错误,然后恢复正常执行,对操作没有明显影响

根据我迄今为止的研究,我已经确定,当Excel不是最上面的活动窗口时,Excel在后台尝试某些功能区操作时,会在Excel 2007中发生这种情况

在我的例子中,创建新工作簿时以及每次尝试将外接程序中的宏命令添加到“快速工具”菜单时,这种情况很少发生。我相信这是因为quicktools窗口位于活动Excel实例的顶部

关于该主题的其他线程建议Ribbon.Invalidate(在无法立即执行时调用)将产生错误。此外,每当执行“getVisible”或“getEnabled”UI命令时。但是,我不是在调用Ribbon.Invalidate,而是在线程期间的任何位置,仅在隔离状态下以及在更改键绑定之后才执行。在创建工作簿或将命令分配给quicktools时,这两种绑定都不会执行。此外,我没有在customUI.xml或VBA代码中的任何地方使用“getVisible”或“getEnabled”命令


我现在不知所措。非常感谢您提供的任何帮助。

经过进一步研究,我终于找到了错误的根源

这既不是一个无效的调用,也不是一个错误的命令。事实证明,这是因为我使用的是一个非16x16大小的图像,它不是Microsoft标准图像(imageMSO)文件


扭曲的错误。如果我打算使用自定义图标,似乎没有办法解决这个问题(我是这样做的)。我非常不喜欢这种功能。

经过一些额外的研究,我终于发现了错误的根源

这既不是一个无效的调用,也不是一个错误的命令。事实证明,这是因为我使用的是一个非16x16大小的图像,它不是Microsoft标准图像(imageMSO)文件

扭曲的错误。如果我打算使用自定义图标,似乎没有办法解决这个问题(我是这样做的)。我非常不喜欢这种功能