4
我試圖從使用C# 4.5
的Excel文件調用宏。我的Excel版本是2010年從C調用Excel宏時出錯#
當我嘗試調用宏,我得到以下錯誤:
Cannot run the macro 'MacroName'. The macro may not be available in this workbook or all macros may be disabled.
我用Google搜索了很多這一點,但沒有什麼似乎工作。
我已經打開了宏安全性,如下面的屏幕截圖顯示:
我使用的代碼如下:
Excel.Application book = null;
Excel.Workbooks workbooks = null;
Excel.Workbook macroWorkbook = null;
Excel.Workbook destinationWorkbook = null;
try
{
book = new Excel.Application();
workbooks = book.Workbooks;
macroWorkbook = workbooks.Open(@"D:\Work\Macros.xls");
destinationWorkbook = workbooks.Open(@"D:\Work\Destination.xlsx");
book.Run("MacroName");
macroWorkbook.Close(false);
destinationWorkbook.Close(true);
}
catch (Exception ex)
{
throw ex; // the finally will be executed before this is thrown
}
finally
{
book.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(macroWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(destinationWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
macroWorkbook = null;
destinationWorkbook = null;
workbooks = null;
book = null;
}
實際宏存儲在Macros.xls
並將在Destination.xslx
上運行。當我在Excel
本身運行這個宏時,沒有問題。
您需要告訴Excel該宏是哪個工作簿。請參閱應用程序的幫助。運行 –
@TimWilliams:對不起。剛剛看到您的評論。刪除我的帖子。 –
@SiddharthRout - 你應該離開你的帖子!我懶得發表一個答案.... –