我可以通过 C# 调用 VBA/Excel 宏。如果用户(在我的例子中是一个 C# 程序)输入了无效值,则会出现一个消息框。这没问题,因为我可以通过 C# 超时并据此做出决定(即确定是否出现消息框)。问题是出现消息框时excel没有正确关闭。我正在使用此代码关闭 excel:
excelApp.DisplayAlerts = false;
Marshal.FinalReleaseComObject(someSheet);
excelWorkbook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(excelWorkbook);
GC.Collect();
GC.WaitForPendingFinalizers();
一切都关闭了,但 excel 和消息框保持打开状态。我有办法从 c# 关闭消息框吗?