我有一个VBA子程序,可以调用其他人编写的子程序。偶尔,另一个子打开带有OK按钮的MsgBox。另一个子程序需要很长时间才能运行,我称之为数百次,所以我希望能够在一夜之间运行它。不幸的是,我无法找到一种方法来自动点击MsgBox上的OK。
我试过了
Application.DisplayAlerts = False
但这不会禁止消息框。
有没有办法做到这一点?
由于
答案 0 :(得分:2)
执行此操作的一种方法是稍微修改原始子的代码。你需要拥有必要的权限......
True
。这会产生类似Sub OriginalSubName(
原始参数集, Optional ShowMessages = True)
在调用msgbox的位置,以这种方式修改代码:
If showMessages = True Then 'The = True part is important here - see below.
showMessages is a Variant type
'The original statement that calls the msgBox
End If
保留原始子代码的其余部分
False
作为额外参数投入,修改调用原始子的行。这会导致OriginalSubName
您的参数集, False
。这样,默认情况下不会禁止显示对话框,但是在子文档中使用它时会执行此操作。不知道为什么我使用可选的Variant类型参数?
If showMessages = True Then
而不仅仅是If showMessages Then
。