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

Bal*_*mar 2 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 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(); 
Run Code Online (Sandbox Code Playgroud)

per*_*ain 5

以下代码打开一个Excel文件,并从磁盘上的文件中获取一个VBA模块和一个VBA用户表单。

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

$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")
Run Code Online (Sandbox Code Playgroud)

  • 可以在“受信任的发布者”选项卡上的“工具”->“宏”->“安全性”中找到“对Visual Basic Project的信任访问”设置。(这是针对Excel 2003;对于2007,可以在Excel选项->信任中心->信任中心设置->宏设置中找到)。您需要确保在运行Excel的任何地方(独立于要处理的Excel文件的存储位置)都启用此设置。(您不能通过编程方式更改此设置-这将使其成为毫无意义的设置)。 (2认同)