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

发布网友

我来回答

4个回答

热心网友

在要显示对话框的代码前关闭系统信息框:Application.DisplayAlerts = False
代码结束时用Application.DisplayAlerts = True开启系统信息框。

热心网友

我们在执行程序的时候,往往会需要一个提示,在前几个章节中讲到的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, "提示",

Set WshShell = Nothing

End Sub

代码解析:

WshShell过程使用WshShell.Popup方法显示消息框。

热心网友

这是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

热心网友

这个用模拟键盘事件应该可以解决

热心网友

在要显示对话框的代码前关闭系统信息框:Application.DisplayAlerts = False
代码结束时用Application.DisplayAlerts = True开启系统信息框。

热心网友

我们在执行程序的时候,往往会需要一个提示,在前几个章节中讲到的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, "提示",

Set WshShell = Nothing

End Sub

代码解析:

WshShell过程使用WshShell.Popup方法显示消息框。

热心网友

这是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

热心网友

这个用模拟键盘事件应该可以解决

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com