我正在使用 C# 通过 VSTO 构建 Excel 加载项,我想做的一件事是自动将我编写的 VBA 模块(一个 .bas 文件)导入 Excel 并在用户从 Com 导入我的 Excel 加载项时运行它Excel 中的插件。
我试过:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.Run(@"C:\myModule.bas");
}
但出现错误:无法运行宏“C:\myModule.bas”。此工作簿中的宏可能不可用,或者所有宏都可能被禁用。
提前感谢阅读我的问题的人!
最佳答案
就这么简单
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#。如果您有任何问题,请告诉我。
关于c# VSTO 从硬盘驱动器运行 VBA 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39653129/