我正在 Excel 中使用 VBA 计算大量数据,并希望在完成后显示 MsgBox。 MsgBox 实际上显示了计算所花费的时间。
问题是当用户决定在计算发生时做其他事情时。 Excel 继续计算,完成后,MsgBox 确实显示,但由于某种原因,Excel 没有将焦点赋予 MsgBox。 Excel 图标将在任务栏中闪烁,如果我们单击它,Excel 会最大化,但 MsgBox 位于 Excel 窗口后面,我们永远无法单击它。所以摆脱它的唯一方法是任务杀死 excel.exe...不太好。 Alt+Pause 也不起作用,因为代码只会在当前代码行之后停止,而当前代码行结束...当 MsgBox 关闭时。
我之前尝试过函数 AppActivate("Microsoft Excel")
但没有成功 ( How do I bring focus to a msgbox? )。应用程序名称实际上比该名称更长,因为 Excel 2010 将文档名称添加到窗口标题中。
知道如何解决这个恼人的问题吗?
最佳答案
无论哪个其他应用程序具有焦点,这都将在 Excel 中起作用:
在消息框或任何警告之前放置以下代码:
AppActivate Application.Caption DoEvents
相信我,这太棒了!
关于vba - Excel 中的 MsgBox 焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27301378/