我可以通过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();
一切都关闭但是优秀,消息框保持打开状态。我有办法从c#中关闭消息框吗?
答案 0 :(得分:0)
我已成功使用the Microsoft solution作为我实施的办公自动化软件。它不是优雅并且它带有先决条件(消息框应该保持焦点,并且在自动化运行时必须没有用户交互),但是它可以工作 - 单击框中的SendKeys method!
答案 1 :(得分:0)