Excel应用程序获取活动表

时间:2015-05-19 10:02:15

标签: c# .net vsto excel-2010 excel-interop

我正在尝试将workbook.SheetActivate事件中的活动工作表作为Microsoft.Office.Tools.Excel.Worksheet对象返回,但我遇到了一些实际问题!

我在运行时通过复制一个工作表,然后重命名它来创建工作表。我正在复制的工作表是一个模板,其中包含每个生成的Excel工作表的外观。

我需要获取Microsoft.Office.Tools.Excel.Worksheet对象,因为我需要在指定的Excel工作表中添加一个按钮控件。

这就是我试图实现这个目标的方法:

void Application_SheetActivate(object Sh)
{
     Excel._Worksheet test = Sh as Excel._Worksheet;
     Worksheet worksheet = Globals.Factory.GetVstoObject(test);
     MessageBox.Show(worksheet.Name.ToString());
}

这适用于Sheet1,但模板表和启动的任何其他内容都会收到此错误: System.NullReferenceException. Object not sent to an instance of an object。运行调试器后,我可以看到第一个excel表被正确分配,但是其他任何表都没有...我知道错误的状态及其含义。

我在这里做错了什么?单击工作表标签后,我想要做的就是返回Microsoft.Office.Tools.Excel.Worksheet类型,但男孩我从未遇到过这么多问题!

0 个答案:

没有答案