【问题标题】:How to Open a newly Created Excel WOrkBook as Active Workbook如何将新创建的 Excel 工作簿作为活动工作簿打开
【发布时间】: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


【解决方案1】:

这是您的简化代码:

Excel.Workbook newWorkBook =Globals.ThisAddIn.Application.Workbooks.Add();
newWorkBook.Activate();

【讨论】:

  • 嗨,使用此代码不会将新创建的 excel 带到前面。调用插件的 excel 工作簿仍然是焦点,我想要实现的是新创建的 excel 工作簿成为焦点
  • @Anand,您使用的是应用程序级插件还是文档级插件?
    另外,如何将工作簿可见性设置为 true,如下所示:newWorkBook.Windows[1] .Visible = true;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多