请教,在VBA 窗体控件Label上如何显示一个倒计时?比如30分钟的倒计时。谢谢。

2025-03-12 00:40:30
推荐回答(2个)
回答1:

是窗体上的Label1控件?还是表格上的Label1控件?

下面的是表格上的Label1控件,如果你设计了窗体,把引用改一下就可以了。

双击标签开始10秒倒计时,再双击停止倒计时。

Dim tgtTm As Date, rmTm As Date, IsRun As Boolean
Const Intv = #12:00:01 AM#
Private Sub Label1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If IsRun Then
Application.OnTime Now() + Intv, "'Sheet1.MyTimer'", , False
IsRun = False
Else
rmTm = #12:00:10 AM#
tgtTm = Now() + rmTm
Label1.Caption = Format(rmTm, "hh:mm:ss")
Application.OnTime Now() + #12:00:01 AM#, "'Sheet1.MyTimer'"
IsRun = True
End If
End Sub
'-----计时器-----
Private Sub MyTimer()
rmTm = tgtTm - Now()
If rmTm > 0 Then
Application.OnTime Now + Intv, "'Sheet1.MyTimer'"
IsRun = True
Else
rmTm = 0
IsRun = False
End If
Label1.Caption = Format(rmTm, "hh:mm:ss")
End Sub


 

回答2:

Private Sub CommandButton1_Click()
st = Now()
t = CDate("00:30:00")
Label1.Caption = t
Do
DoEvents
If DateDiff("s", st, Now()) = 1 Then
st = Now()
t = DateAdd("s", -1, t)
If Minute(t) = 0 And Second(t) = 0 Then Exit Do
Label1.Caption = t
End If
Loop
End Sub