无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3371|回复: 13
打印 上一主题 下一主题

[求助] VBA的msgbox怎么弄成倒计时结束后自动执行默认操作?

[复制链接]
跳转到指定楼层
1#
发表于 2022-11-15 14:03:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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


2#
发表于 2022-11-15 14:45:18 | 只看该作者
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

点评

Application.OnTime Now + TimeValue("00:00:03"), "msg2"这一行报错,我用的是VBA7.0好像,是不是跟版本有关系 ??? [attachimg]512445[/attachimg]  详情 回复 发表于 2022-11-15 15:09
回复

使用道具 举报

3#
 楼主| 发表于 2022-11-15 15:09:51 | 只看该作者
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好像,是不是跟版本有关系 ???


回复

使用道具 举报

4#
发表于 2022-11-15 15:32:27 | 只看该作者
本帖最后由 xsg123456 于 2022-11-15 15:34 编辑

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

点评

不知道,我是直接复制你写的代码运行的...  详情 回复 发表于 2022-11-15 16:05
回复

使用道具 举报

5#
 楼主| 发表于 2022-11-15 16:05:47 | 只看该作者
xsg123456 发表于 2022-11-15 15:32
是不是拼写错误,应该和vba的版本无关。
提示是显示使用了运行时没有方法和属性,应该是拼写错了

不知道,我是直接复制你写的代码运行的...
回复

使用道具 举报

6#
发表于 2022-11-16 14:40:40 | 只看该作者
在vba的ide里插入模块,复制代码进去运行看看,感觉这个ontime不应该有版本问题

点评

试了无效,运行的时候停在msgbox提示窗口,点了确定就是这个提示...  详情 回复 发表于 2022-11-16 15:57
回复

使用道具 举报

7#
发表于 2022-11-16 15:11:19 | 只看该作者
路过…………
回复

使用道具 举报

8#
 楼主| 发表于 2022-11-16 15:57:33 | 只看该作者
xsg123456 发表于 2022-11-16 14:40
在vba的ide里插入模块,复制代码进去运行看看,感觉这个ontime不应该有版本问题

试了无效,运行的时候停在msgbox提示窗口,点了确定就是这个提示...
回复

使用道具 举报

9#
发表于 2022-11-16 16:51:07 | 只看该作者
路过…………
回复

使用道具 举报

10#
发表于 2022-11-16 19:58:11 | 只看该作者

路过…………
回复

使用道具 举报

11#
发表于 2022-11-21 11:38:36 | 只看该作者
昨天有学习到了这个自动延时关闭功能

点评

咋个搞定的??? -=-=-=-=-=-=-=-=-=-  详情 回复 发表于 2022-11-21 11:48
回复

使用道具 举报

12#
 楼主| 发表于 2022-11-21 11:48:07 | 只看该作者
a583091790 发表于 2022-11-21 11:38
昨天有学习到了这个自动延时关闭功能

咋个搞定的???

-=-=-=-=-=-=-=-=-=-
回复

使用道具 举报

13#
发表于 2022-11-21 12:42:02 | 只看该作者
自己做一个 窗体可以

窗体:
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

评分

参与人数 1无忧币 +1 收起 理由
邪恶海盗 + 1 很给力!

查看全部评分

回复

使用道具 举报

14#
发表于 2023-12-1 11:23:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-20 10:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表