无忧启动论坛

标题: VBA的msgbox怎么弄成倒计时结束后自动执行默认操作? [打印本页]

作者: 邪恶海盗    时间: 2022-11-15 14:03
标题: VBA的msgbox怎么弄成倒计时结束后自动执行默认操作?
MsgBox(prompt[,buttons][,title][,helpfile,context])
参数描述 (Parameter Description)
Prompt - 必需参数。 在对话框中显示为消息的字符串。 提示的最大长度约为1024个字符。 如果消息扩展到多行,则可以使用回车字符(Chr(13))或每行之间的换行符(Chr(10))分隔行。
Buttons - 可选参数。 一个数字表达式,指定要显示的按钮类型,要使用的图标样式,默认按钮的标识以及消息框的模态。 如果留空,则按钮的默认值为0。
Title - 可选参数。 字符串表达式显示在对话框的标题栏中。 如果标题留空,则应用程序名称将放在标题栏中。
Helpfile - 可选参数。 一个String表达式,用于标识用于为对话框提供上下文相关帮助的帮助文件。
Context - 可选参数。 一个数字表达式,用于标识“帮助”作者分配给相应“帮助”主题的“帮助”上下文编号。 如果提供了上下文,则还必须提供helpfile。

以上是在网上查到的资料,其它语言比如AU3等都有一个延时选项,在倒计时完成后会自动执行默认操作,VBA不带这个东西,要怎么实现呢,比如代码是这样的:
Function MessageBox1()
msg1=msgbox("请选择操作",4+64+256,"提示")
if msg1 =1 then msgbox("你选择了-是")
if msg1 =2 then msgbox("你选择了-否")
End Function



作者: xsg123456    时间: 2022-11-15 14:45
Sub Msg1()
    If MsgBox("3秒后执行......", vbOKCancel, "提示") Then
        Application.OnTime Now + TimeValue("00:00:03"), "msg2"
    End If
End Sub

Function msg2()
    MsgBox "开始执行了", vbOKCancel, "新提示"
End Function

作者: 邪恶海盗    时间: 2022-11-15 15:09
xsg123456 发表于 2022-11-15 14:45
Sub Msg1()
    If MsgBox("3秒后执行......", vbOKCancel, "提示") Then
        Application.OnTime No ...

       Application.OnTime Now + TimeValue("00:00:03"), "msg2"

这一行报错,我用的是VBA7.0好像,是不是跟版本有关系 ???



作者: xsg123456    时间: 2022-11-15 15:32
本帖最后由 xsg123456 于 2022-11-15 15:34 编辑

是不是拼写错误,应该和vba的版本无关。
提示是显示使用了运行时没有方法和属性,应该是拼写错了


作者: 邪恶海盗    时间: 2022-11-15 16:05
xsg123456 发表于 2022-11-15 15:32
是不是拼写错误,应该和vba的版本无关。
提示是显示使用了运行时没有方法和属性,应该是拼写错了

不知道,我是直接复制你写的代码运行的...
作者: xsg123456    时间: 2022-11-16 14:40
在vba的ide里插入模块,复制代码进去运行看看,感觉这个ontime不应该有版本问题
作者: bjcclzw    时间: 2022-11-16 15:11
路过…………
作者: 邪恶海盗    时间: 2022-11-16 15:57
xsg123456 发表于 2022-11-16 14:40
在vba的ide里插入模块,复制代码进去运行看看,感觉这个ontime不应该有版本问题

试了无效,运行的时候停在msgbox提示窗口,点了确定就是这个提示...
作者: abcd66099    时间: 2022-11-16 16:51
路过…………
作者: ihso    时间: 2022-11-16 19:58

路过…………
作者: a583091790    时间: 2022-11-21 11:38
昨天有学习到了这个自动延时关闭功能
作者: 邪恶海盗    时间: 2022-11-21 11:48
a583091790 发表于 2022-11-21 11:38
昨天有学习到了这个自动延时关闭功能

咋个搞定的???

-=-=-=-=-=-=-=-=-=-
作者: 2011whp    时间: 2022-11-21 12:42
自己做一个 窗体可以

窗体:
Private Sub UserForm_Initialize()
Application.OnTime Now + TimeValue("00:00:03"), "模块1.msg2"
Application.OnTime Now + TimeValue("00:00:03"), "模块1.msg1"
End Sub


模块1
Sub main()
UserForm1.Show
End Sub

Sub Msg1()
   UserForm1.Hide
End Sub

Sub msg2()
Sheet1.Range("A1").Value = "abc"
End Sub

作者: nowayer    时间: 2023-12-1 11:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: hehuiying    时间: 2024-4-28 12:56
谢谢分享




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3