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

标签 c# excel vsto

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

相关文章:

c# - 我可以在非 ASP.NET Core 的 .NET.core 应用程序中使用 HttpClientFactory 吗?

excel - 找不到类型 'Microsoft.Office.Tools.Ribbon.RibbonTab' 错误阻止设计器打开

java 将 .xls 转换为 csv

excel - 使用 Excel VBA 将 Excel 工作簿中的 OLEObject 内容放入 Outlook 电子邮件正文

c# - Excel.Range 到 C# 中的字符串转换

c# - 使用 Interop 查找 Word 文档节中的页数

c# - 格式错误的 JSONP 响应

c# - "No database selected"异常

c# - 扫描 QR 码 (vcard) 并在 windows phone 7 上保存联系人

vba - 如何检查单元格值以更改另一个单元格的值?