当excel通过C#代码打开时,macros不执行,而在手动打开excel时执行VBA代码

我已经在Excel表格中写了一些代码,在Excel表格中,它将文本文件转换为Excel表格,并对数据执行一些validation,以过滤正确的数据和错误数据,并将其分隔为正确的文本文件和错误文本文件。 当excel打开时,整个逻辑运行。 打开这个excel的逻辑是写在我的.net应用程序在C#中。

代码是:

FileInfo fi = new FileInfo("C:\automate_load.xlsm"); if (fi.Exists) { Excel.Application excelapp = new Excel.Application(); excelapp.Visible = true; Excel.Workbook wb = excelapp.Workbooks.Open("C:\automate_load.xlsm", 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); 

当我手动打开automate_load.xlsm文件时,整个VBA代码运行正常,但是当我的C#代码打开文件时,什么都不会发生。

我想当文件被自动打开时,micros被禁用。 请帮我解决一些问题。 提前致谢….

如果要运行存储在打开的xlsm文件中的sub文件,请选中该checkbox(快捷键:ALT + T + M + S):

Office 2010Office 2003

我不太确定,但认为这可能有帮助。