【发布时间】:2014-10-23 06:53:54
【问题描述】:
我在 Excel 中开发了一个插件。此插件有一个包含按钮的功能区。单击此按钮时,我会根据用户凭据从数据库中检索到的 xml 字符串创建一个新的工作簿和工作表。 我能够与工作表一起创建工作簿,但是,此工作簿不会显示为用户的主要工作簿。
我想要实现的是:当插件点击一个excel工作簿时,生成的工作簿将成为活动的工作簿,旧的excel工作簿可视化,这样用户的注意力现在集中在创建的工作簿上。工作表,而不是他必须搜索创建的工作簿。
这是我使用的代码,但它似乎不起作用: Ps : 我使用 Excel 2013 和 VS 2013 和 C#
var excel = Globals.ThisAddIn.Application;
Microsoft.Office.Interop.Excel.Workbook newWorkBook = null;
newWorkBook = Globals.ThisAddIn.Application.Workbooks.Add();
#region BringGeneratedWorkBookToFront
string newWorkBookName = newWorkBook.Name;
foreach (Workbook wb in excel.Workbooks){
if (wb.Name == newWorkBookName) {
wb.Activate();
break;
}
}
#endregion
【问题讨论】:
-
在您的代码中,您将遍历所有工作簿并激活每个工作簿。您应该发布创建工作簿和单击事件处理程序的代码
-
嗨,我正在根据名称检查工作簿,只有当名称匹配时,我才会激活。
-
这里是代码: var excel = Globals.ThisAddIn.Application; Microsoft.Office.Interop.Excel.Workbook newWorkBook = null; newWorkBook =Globals.ThisAddIn.Application.Workbooks.Add(); #region BringGeneratedWorkBookToFront 字符串 newWorkBookName = newWorkBook.Name; foreach(excel.Workbooks 中的工作簿 wb){ if (wb.Name == newWorkBookName) { wb.Activate();休息; } } #endregion
标签: c# excel vsto excel-automation