Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式将代码模块导入Excel工作簿_C#_Excel_Vba - Fatal编程技术网

C# 以编程方式将代码模块导入Excel工作簿

C# 以编程方式将代码模块导入Excel工作簿,c#,excel,vba,C#,Excel,Vba,我动态创建工作簿。我想在创建代码模块时导入代码模块(Module1.bas)和(UserForm1.frm) 有没有办法通过使用工作簿或工作表对象附加此类文件? Microsoft.Office.Interop.Excel.Workbook wkBk; Microsoft.Office.Interop.Excel.Worksheet wkSht; app = new Microsoft.Office.Interop.Excel.Application(); app = new Microsof

我动态创建工作簿。我想在创建代码模块时导入代码模块(Module1.bas)和(UserForm1.frm)

有没有办法通过使用工作簿或工作表对象附加此类文件?

Microsoft.Office.Interop.Excel.Workbook wkBk;
Microsoft.Office.Interop.Excel.Worksheet wkSht; 
app = new Microsoft.Office.Interop.Excel.Application();
app = new Microsoft.Office.Interop.Excel.Application();
app.DisplayAlerts = false;
app.Visible = false;
wkBk = app.Workbooks.Open(strFile, oMissing); 
wkSht = (Microsoft.Office.Interop.Excel.Worksheet)wkBk.Sheets.get_Item(2); 
wkBk.Save(); 

下面的代码打开一个Excel文件,并向其中添加一个VBA模块和一个VBA用户表单,这些表单取自磁盘上的文件

要使其工作,必须首先打开“信任访问Visual Basic项目”设置。可以在“受信任的发布者”选项卡上的工具->宏->安全中找到它。(这适用于Excel 2003;对于2007,可在Excel选项->信任中心->信任中心设置->宏设置中找到)。您需要确保无论Excel在何处运行,都会启用此设置(与正在处理的Excel文件的存储位置无关)。(您无法通过编程更改此设置-这将使其成为完全无意义的设置)


如果这是在C中,那么您应该将其标记为such@Anonymous否-不与
Interop
Im一起使用Offoce 2007女士。对于此代码逻辑,im获取错误“不信任对Visual Basic项目的编程访问”可以在“受信任的发布者”选项卡上的“工具->宏->安全”中找到“信任对Visual Basic项目的访问”设置。(这适用于Excel 2003;对于2007,可在Excel选项->信任中心->信任中心设置->宏设置中找到)。您需要确保无论Excel在何处运行,都会启用此设置(与正在处理的Excel文件的存储位置无关)。(您不能以编程方式更改此设置-这将使其成为完全无意义的设置);FileStream fs=newfilestream(@“UserForm1.frm”,FileMode.Open,FileAccess.Read);xlMod=wkBk.VBProject.VBComponents.Import(fs.Name);
$oExcel = ObjCreate("Excel.Application")
    With $oExcel
        .Visible = 0
        .WorkBooks.Open("C:\Excel.xls")
    EndWith

    $oModules = $oExcel.ActiveWorkbook.VBProject.VBComponents
    $oModules.Import("C:\Module1.bas")
    $oModules.Import("c:\Program Files\Microsoft Office\Office11\UserForm1.frm")