c#VSTO从硬盘运行VBA模块

我正在使用C#构build一个VSTO的Excel AddIn,我想要做的一件事就是自动将一个VBA模块写入(.bas文件)到Excel中,并在用户从Excel中的Com AddIns中导入我的Excel AddIn时运行它。

我尝试像:

private void ThisAddIn_Startup(object sender, System.EventArgs e) { this.Application.Run(@"C:\myModule.bas"); } 

但有错误: Cannot run the macro 'C:\myModule.bas'. The macro may not be available in this workbook or all macros may be disabled. Cannot run the macro 'C:\myModule.bas'. The macro may not be available in this workbook or all macros may be disabled.

提前感谢阅读我的问题的人!

它和…一样简单

 wb.VBProject.VBComponents.Import ("C:\\Module1.Bas"); 

你不运行一个模块。 你在模块中运行一个程序。 要运行该程序,只需使用

 oXL.Run "Procedure Name(parameters if any)" 

阅读更多如何从Visual Basicdynamic添加和运行VBAmacros 。 这是在VBA解释,但我相信你可以很容易地适应C#。 如果您有任何问题,请告诉我。