我正在尝试调用Excel文件中的一个宏。 下面是我得到的代码,但是在下面运行会抛出异常,并显示以下信息。
代码:
// Define your Excel Objects
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook = null;
try
{
//Start Excel and open the workbook.
xlWorkBook = xlApp.Workbooks.Open(@"C:\MyFolder\Junk\macro\xxxxxReport.xlsm");
//Run the macros by supplying the necessary arguments
xlApp.Run("LookupHLink");
//xlWorkBook.Save();
//Clean-up: Close the workbook
xlWorkBook.Close(false);
//Quit the Excel Application
xlApp.Quit();
}
catch (Exception ex)
{
}
finally
{
//~~> Clean Up
releaseObject(xlApp);
releaseObject(xlWorkBook);
}
宏没有参数。
Public Sub LookupHLink()
错误讯息:
无法运行宏'LookupHLink'。宏可能在此工作簿中不可用,或者可能禁用所有宏。
如果我做错了,请告诉我。
答案 0 :(得分:1)
据我所知,这个错误的可能原因是:
鉴于可用信息,似乎更可能的原因是禁用宏。
您可以尝试将文件移至受信任位置:
您可以通过点击文件>查看受信任的位置。选项然后 点击信任中心>信任中心设置>受信任的地点。
请参阅Change macro security settings in Excel [2010]。
您也可以尝试更改安全设置:
在Excel 2007中
注意:C#中的可选参数是一个相对较新的功能...您可以尝试旧方法并使用Type.Missing
来填充Run method的臭名昭着的30个参数。像这样:
xlApp.Run('macro', Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);