我有现有的 VBA 代码(我的)在 Excel 2010 中工作,可激活自定义功能区选项卡:IRibbonUIObjectName.ActivateTab "tabID"
该代码作为子程序中的标准操作存在,用于处理活动窗口的更改(在相关时激活选项卡)。
相同的代码无法在 Excel 2019 中运行。在运行时,会引发异常
'无效的调用或参数'
该代码通过了语法检查,并且我通过让 VBA 提示我重建了该行。
即输入:“IRibbonUIObjectName”。并让编辑器提供ActivateTab(确认对象有效性)。
我已阅读当前的 Office 开发文档,语法没有改变。
核心问题:
1) 自 2010 年以来有什么变化吗?
2)这个方法在Excel 2019中如何应用?如何调用执行该方法的子程序?确切的语法是什么?
附加信息:
该选项卡及其控件的所有其他功能的功能与 2010 系统中的功能相同。
我在执行之前检查功能区对象:
If Not mobQSRibbon Is Nothing Then mobQSRibbon.ActivateTab "plTAB_QuoteSystem"
名称空间:
customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="ModuleName.SubName" >
附加信息2:
进一步的测试表明,这个问题不仅仅是语法问题。
该方法有时有效。具体来说:
1)打开工作簿后执行该方法导致异常
- 即,通过在处理作为工作簿打开部分触发的 WorkbookActivate 事件时执行 ActivateTab。
2) 在处理仅切换到已打开的工作簿而触发的 WorkbookActivate 事件时执行该方法不会导致异常。
3) 同样,在处理 SheetActivate 事件时仅通过切换工作表执行该方法不会导致异常。
因此,该问题似乎与 Excel 处理功能区、打开工作簿后的方式发生了变化有关。