从另一个文件关闭msgbox

时间:2018-02-02 09:56:50

标签: vba excel-vba excel

我正在使用多个excel文件,每个文件都使用VBA进行一些计算。现在我正在处理一个文件,它将一个接一个地运行每个文件,并通过一次单击计算它们。不幸的是,在每个文件的计算结束时,Msgbox“报告已更新”,我的宏停止并等待手动确认“确定”,然后关闭第一个文件并打开下一个文件。 我无法使用msgboxes删除这一行,因为有些人只使用一个文件,他们需要被告知所有内容都已完成。
这是我的问题:如何自动关闭此msgbox?

提前致谢

2 个答案:

答案 0 :(得分:0)

我认为这是不可能的,因为MsgBox是模态的。但是为什么你的宏首先显示它?您可以添加条件指令,以检查是否显示其工作的表单。类似的东西:

If ActiveSheet.Name = wsProcessedSheet.Name Then MsgBox "Report updated"

因此,该消息将显示给普通用户而不是您的超级宏。或者,您可以仅为您的计算机禁用MsgBox:

If Environ("username")<> "your user name" Then MsgBox "Report updated"

答案 1 :(得分:0)

感谢您提出有趣的建议。 我刚刚想出了不同的解决方案。最初我有按钮运行宏Update()

Sub Update()
  ...calculations....
  Msgbox "Report updated"
End Sub

现在我从这个宏中删除了msgbox并在下面创建了两个宏:

Sub ButtonClick()
  Call Update
  Msgbox "Report updated"
End Sub

Sub Update()
  ...calculations....
End Sub

现在按钮正在运行宏ButtonClick,在外部文件中,我可以使用不包含msgbox的宏Update()。

但我仍然想知道是否有办法确认msgbox警报