vba - Excel 中的 MsgBox 焦点

标签 vba excel excel-2010 msgbox

我正在 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/

相关文章:

c++ - 对应于C++的MAKEWORD(2,2)的VBA值?

excel - 在 VBA 中循环使用具有相似名称结构的工作表

python:pandas - 如何将 pandas 数据帧的前两行合并到数据帧标题?

excel - 将嵌入的 OLE 对象(Excel 工作簿)保存到 Excel 2010 中的文件

excel - 如何使用 Coldfusion 创建 xlsx 文件

Excel:使用单元格颜色填充作为单元格公式的输入

excel - 使用宏复制每 N 行

vba - VBA for Excel 中的刽子手

excel - MS Access 2003 - Access 表单上嵌入的 Excel 电子表格

ruby-on-rails - 日期的 AXLSX 公式仅显示数字符号