按alt+F11键,打开VBA窗口,双击sheet1,将下方的代码复制到打开的窗口中;
点击“开发工具”-“插入”-“表单控价”,插入一个按钮,打上想要的文字;
在按钮上右键,指定宏,选择刚才编辑的宏,确定,
点击按钮,就开始计时了,低于1分钟后,字体会变成红色。
不知道你的 具体代码是什么样子的
可以增加一段代码调用 一个子程序代码
A=150 '分钟数
……………………
Load UserForm1
UserForm1.Show
UserForm1.TextBox2 = A/60/24 ‘转换成时间数系列 作为窗体中的一个隐藏文本框需要增加
UserForm1.TextBox1 = Format(TextBox2, "h:mm:ss")
CALL 倒计时
……………………
Sub 倒计时()
N = UserForm1.TextBox2 - TimeSerial(0, 0, 1)
UserForm1.TextBox2 = N
If N > 0 Then
UserForm1.TextBox1 = Format(N, "h:mm:ss")
UserForm1.Show False
Application.OnTime Time + TimeSerial(0, 0, 1), "倒计时"
Else
Unload UserForm1 '这里你可以自己酌情处理 现在是关闭窗体
End If
End Sub
上面的是你自己原来的代码部分 省略号中间部分 是你要增加进去的 如果你的代码 就是在原窗体上进行的话,你可以不用load …
下面的是计时子程序
但是 你必须在你的窗体上 增加一个 隐藏的文本框(你要显示倒计时的也要变成文本框,不要使用label,文本框的格式 你也可以设置成类似 label 样式),这是作为 倒计时时的数据计算用的(因为考虑到了 你的时间 可能会有超过24小时的时候) ……
其他再有问题 再追问吧……这种办法简单易行
当然 这里 文本框显示格式 你还可以 使用其他格式来显示 超过24小时的状态 如果发生的话……自己琢磨吧 比较简单
以为会有多复杂的程序哪 为什么不直接说你要做什么啊 给了答案 似乎连看都没看……
假设你的窗体名称为Form1,点击Command1开始倒计时,那么可用如下代码:
Dim tgtTm As Date, rmTm As Date
Const Intv = #12:00:01 AM#
'----点击Command1按钮开始计时--------
Private Sub Command1_Click()
Dim A
A=150
StartTimer A
End Sub
'-------开始计时子程序-----------
Sub StartTimer(ByVal A)
rmTm = A * #12:01:00 AM#
tgtTm = Now() + rmTm
Label1.Caption = Format(rmTm, "hh:mm:ss")
Application.OnTime Now() + #12:00:01 AM#, "Form1.MyTimer"
End Sub
'-----计时器-----
Private Sub MyTimer()
Static hAlt As Boolean
rmTm = tgtTm - Now()
If rmTm > 0 Then
If rmTm < #12:05:00 AM# And Not hAlt Then
MsgBox "剩余时间:" & rmTm, vbInformation
hAlt = True
End If
Application.OnTime Now + Intv, "Form1.MyTimer"
Else
rmTm = 0
End If
Label1.Caption = Format(rmTm, "hh:mm:ss")
End Sub
没有弹出对话框,因为弹出对话框后要点击确定按钮才会继续计时,不知道你这里要怎么处理。
你再追问说清楚吧,弹出对话框需不要需要继续计时?
看对你是否有帮助