我正在使用C#通过VSTO构建Excel AddIn,我想做的一件事就是自动将我编写的VBA模块(.bas文件)导入Excel并在用户从Com导入Excel AddIn时运行它Excel中的AddIns。
我试过了:
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.
提前感谢那些阅读我问题的人!
答案 0 :(得分:4)
就像
一样简单wb.VBProject.VBComponents.Import ("C:\\Module1.Bas");
您没有运行模块。您在模块中运行过程。要运行该过程,只需使用
oXL.Run "Procedure Name(parameters if any)"
了解更多How to dynamically add and run a VBA macro from Visual Basic。在VBA中对此进行了解释,但我确信您可以轻松地将其应用于C#。如果您有任何问题,请告诉我。