vba 中 如何自动选择弹出的对话框,点击“确定”,使程序继续运行

vba 中如何自动选择弹出的对话框,点击“确定”,使程序继续运行。。

在要显示对话框的代码前关闭系统信息框:Application.DisplayAlerts = False
代码结束时用Application.DisplayAlerts = True开启系统信息框。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-08
我们在执行程序的时候,往往会需要一个提示,在前几个章节中讲到的MsgBox函数可以实现这个功能,其他的办法还有没有呢?该怎么办呢?

这时我们可以用到WshShell.Popup方法,WshShell.Popup方法的语法如下:

WshShell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton

参数a) strText是必需的,与Msgbox的Prompt参数类似,代表在消息框中作为信息显示的字符或字符串。如果显示的内容超过一行,可以在每一行之间用换行符 (Chr(10))等将各行分隔开来。

b) natSecondsToWait是可选的,其时间单位为妙。如果提供natSecondsToWait参数且其值大于零,则消息框在natSecondsToWait 参数指定的秒数后关闭。

c) strTitle是可选的,代表在消息框标题栏中作为标题的字符或字符串,若省略,则窗口标题为"Windows 脚本宿主"。

d) natType是可选的,指定消息框中显示按钮的数目及类型、使用的图标样式、缺省按钮以及消息框的强制回应等,与MsgBox函数buttons参数相同.

e) intButton指示用户所单击的按扭编号,与MsgBox函数的返回值相同,若用户在natSecondsToWait 秒之前不单击按扭,则返回值为 -1 。

下面我们看下面的一个实例代码:

Sub MyWshShell()

Dim WshShell As Object

Set WshShell = CreateObject("Wscript.Shell")

WshShell.popup "执行完毕!", 2, "提示", 64

Set WshShell = Nothing

End Sub

代码解析:

WshShell过程使用WshShell.Popup方法显示消息框。
第2个回答  2013-12-31
这是windows API的窗口钩子做的事情, 不是VBA的任务, 你是什么环境有这个需求?追问

vba:删除sheet2 sheet3的程序:
For i = Sheets.Count To 2 Step -1 Sheets(i).Delete Next 会弹出警告窗口"要删除的工作表中可能存在数据。如果要永久删除这些数据,请按“删除”"
请问如何让程序自动选择 "删除 " .然后继续执行剩余程序。。?

追答

这个简单, 先把excel警告提示功能关闭, 然后删除, 再打开即可
xlApp.DisplayAlerts = False
xlBook.Worksheets(1).Delete
xlApp.DisplayAlerts = True

第3个回答  2013-12-31
这个用模拟键盘事件应该可以解决
相似回答