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