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#。 如果您有任何问题,请告诉我。