【发布时间】:2019-09-29 09:48:09
【问题描述】:
我正在尝试运行 excel vba 宏并返回结果,但我总是返回 null(请原谅我的无知,我是这个宏的新手)
宏
Public Function TestMacro() As Boolean
If Len(Range("A1").Value) <> 9 Then
TestMacro = False
Else
TestMacro = True
End If
End Function
调用它的 C# 代码
Excel.Application excelApp = new Excel.Application { DisplayAlerts = false };
object misValue = Missing.Value;
excelApp.Visible = false;
Excel.Workbook ExcelWorkBook = excelApp.Workbooks.Open(filePath);
try
{
var result = excelApp.Run("Sheet1.TestMacro");
ExcelWorkBook.Close(false, misValue, misValue);
}
catch (Exception e)
{
Console.WriteLine(e);
}
finally
{
excelApp.Quit();
if (ExcelWorkBook != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelWorkBook); }
if (excelApp != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp); }
}
【问题讨论】:
-
This says 在模块中比在工作表中效果更好,但我个人不知道。
标签: c# excel vba excel-interop