首页 文章

在C#中运行Excel宏在特定工作簿中失败

提问于
浏览
4

我正在尝试使用标准的Microsoft.Office.Interop.Excel库在C#的Excel工作簿中运行宏 . 在我的场景中,Excel的版本可以是2010年或2013年 .

可能有多个工作簿为同一个Application对象打开,每个工作簿可能具有相同的宏名称,因此我明确地传入工作簿名称

string macro = string.Format("{0}!{1}", workbook.Name, macroName);
Application.Run(macro);

奇怪的是,如果工作簿名称中包含连字符,则会出现COMException:

Application.Run("My-Workbook!macro1")

但运行正常没有连字符:

Application.Run("MyWorkbook!macro1")

这只是我还是这很奇怪?谁能想到一个解决方法?

1 回答

  • 4

    quotes中包装工作簿名称

    string macro = string.Format("'{0}'!{1}", workbook.Name, macroName);
    Application.Run(macro);
    

相关问题