2013-10-22 2 views
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. 

,하지만 아무것도 정말 일 것 같다. 다음 스크린 샷이 같이

나는, 매크로 보안을 열었습니다 :

Macro Security

다음과 같이 내가 사용하고있는 코드는 다음과 같습니다

실제 매크로는 Macros.xls에 저장됩니다
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; 
} 

Destination.xslx에서 실행됩니다. Excel에서이 매크로를 실행할 때 문제가 없습니다.

+0

당신은 매크로가있는 통합 문서 Excel을 말할 필요가 Application.Run –

+0

@TimWilliams에 대한 도움말을 참조하십시오. 죄송합니다. 방금 당신의 코멘트를 보았습니다. 내 게시물을 삭제했습니다. –

+0

@SiddharthRout - 게시물을 떠나야합니다! 나는 대답을 게시하기에는 너무 게을 렀다. ... –

답변

8
book.Run ("'Macros.xls'!MacroName"); 
관련 문제