c#VSTO从硬盘驱动器运行VBA模块

时间:2016-09-23 05:21:52

标签: c# excel vsto

我正在使用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.

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

1 个答案:

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