我正在尝试激活自定义标签:
Globals.Ribbons.MyRibbon.RibbonUI.ActivateTab("TabAddin")
它什么都不做。没有错误,没有标签激活,没有。
如果我将选项卡名称更改为非现有选项卡,则会引发异常,这是显而易见的。这意味着ActivateTab方法正在做某事,但不是它打算做什么。
请帮忙吗?这是VSTO for Excel 2016。
答案 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