我目前有C# Workbook-level Office 2007 Addin在设计时添加了Worksheet,我在Worksheet派生类中添加了方法和属性。
我希望能够以编程方式创建一个新的工作表克隆,继承或拥有此现有工作表类的方法和事件处理程序自动。
如果可以实现这一目标,那么有人可以概述一下如何实现这一目标吗?尽管任何.NET代码都可以接受,但最好使用C#演示代码。
谢谢你的时间。
答案 0 :(得分:2)
好的,好问题,我会密切关注这里发生的事情。
几个月前,我遇到了类似的问题,需要在动态创建的工作表上创建代码和事件。但是,为了能够做到这一点,我最终在工作表中创建了VBA脚本对象。
所以过程是:
oBook = objExcel.ActiveWorkbook;
oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
string sCode = "sub myVBASub()\r\n"+
"msgbox("Hello")\r\n"+
"End Sub\r\n";
oModule.CodeModule.AddFromString(sCode);
答案 1 :(得分:1)
我现在得出的结论是,在我们正在寻找的现有状态下复制这些类实际上是不可行的。
根据Host Items and Host Controls Overview:在文档级别插件中,无法以编程方式创建主机项,但仅限于设计时。这进一步加强了explanation of the programmatic limitations主机项和主机控件,特别是对于文档级插件。