尽管以下背景信息与该问题不太相关,但我将其包括在内,以防您好奇:
我在跑步:
xlWorkBook.RefreshAll();
在 Excel 工作簿上,有时我会收到以下消息:
使用 c# .NET 3.5 我想在检测到它后立即摆脱这个弹出窗口。
如何以编程方式检测并关闭它/按确定?
请注意,即使它在后台,我也希望能够识别此弹出窗口!
您应该能够将显示警报设置为 false 并避免这些
Application.DisplayAlerts = False
您可以使用Application.DisplayAlerts = False
来抑制警报/弹出窗口。但是,理想情况下,这不应该是正确的行为。当我们调用RefreshAll()
并显示错误弹出窗口时,excel不会刷新数据。它仍然会显示旧数据。
为了解决这个问题,您可以保留Application.DisplayAlerts=True
并创建两个线程:一个会打开 excel 应用程序并调用 RefreshAll(),另一个会等待指定的时间(比如 20 分钟)。如果第一个线程在 20 分钟内没有返回(可能是由于弹出),则第二个线程将终止 excel 进程。第一个线程将被释放,并将记录文件未刷新的异常。