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

时间:2017-07-24 16:54:04

标签: excel vsto excel-addins

我正在尝试激活自定义标签:

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

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

如果我将选项卡名称更改为非现有选项卡,则会引发异常,这是显而易见的。这意味着ActivateTab方法正在做某事,但不是它打算做什么。

请帮忙吗?这是VSTO for Excel 2016。

1 个答案:

答案 0 :(得分:2)

原来我以编程方式打开了这本​​书,并在调用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;
}

所有上述操作都会导致加载项按预期工作。

干杯

的Jaime

相关问题