我正在尝试将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
类型,但男孩我从未遇到过这么多问题!