c# VSTO 运行 VBA 来自硬盘的模块

c# VSTO run VBA module from hard drive

我正在使用 C# 通过 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.

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

就这么简单

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