Excel 功能区中的自定义选项卡无法激活

Custom tab in Excel Ribbon cannot be activated

我正在尝试激活自定义选项卡:

Globals.Ribbons.MyRibbon.RibbonUI.ActivateTab("TabAddin")

它什么都不做。没有错误,没有标签激活,什么都没有。

如果我将选项卡名称更改为不存在的选项卡,它会抛出异常,这是显而易见的。这意味着 ActivateTab 方法正在做一些事情,但不是它打算做的事情。

有什么帮助吗?这是 Excel 2016 年的 VSTO。

事实证明,我正在以编程方式打开这本书,并且在调用 Open 方法后立即尝试激活自定义选项卡。在那个阶段,选项卡还没有创建(可能 Open 方法是异步的),这就是选项卡没有被激活的原因。

终于用这个打开书了:

var excelApp = Globals.ThisAddIn.Application;
excelApp.WorkbookActivate += excelApp_WorkbookActivate;
Excel.Workbook workbook = excelApp.Workbooks.Open(Filename: fileToOpen); 

在源文件的其他部分,我有:

void excelApp_WorkbookActivate(Excel.Workbook Wb)
{
    Globals.ThisAddIn.Application.Wait(DateTime.Now.AddSeconds(1));
    this.RibbonUI.ActivateTab("TabLeanAddin");
    Globals.ThisAddIn.Application.WorkbookActivate -= excelApp_WorkbookActivate;
}

以上所有导致加载项按预期工作。

干杯

海梅