我在复制时遇到问题ExcelWorkSheet
以及相应的CodeModule
复印表的。让我解释:
设想:我有一个带有宏的 Excel 文件 (.xlsm),我使用此 Excel 文件作为模板来创建另一个 Excel 文件(数据将复制到新文件中)。
因此,首先我从数据库中获取一些数据并打开 Excel 模板(.xlsm
) file.
在某一时刻,某些条目需要位于不同的工作表中,这就是“WorkSheets.Add()”的用武之地。
var newSheet = workbook.Worksheets.Add("someName", templateSheet);
复制模板表(其中包含我也想复制的“VBA”代码)后,我遇到了问题。
看来新创建的工作表的“CodeModule”与模板中的“CodeModule”按名称和引用相同。
那是;所有属性值都相同并且:workbook.VbaProject.Modules
仅包含模板文件的初始代码模块,而不包含新的新代码模块newSheet
.
更糟糕的是,如果我想绑定一个新的CodeModule
像这样:
workbook.VbaProject.Modules.AddModule("test");
newSheet.CodeModule.Name = "test";
这俩newSheet.CodeModule
and templateSheet.CodeModule
被设置为null
(well Nothing
实际上,因为我使用的是 VB.Net)。
所以问题是:这是一个错误还是我在这里做错了什么?更好的是:你能指导完成这个场景的方法吗?