倒计时Excel VBA – 代码崩溃的Excel

有人可以提供一个洞察,为什么这崩溃了我的优秀,我似乎无法工作。 我试图学习VBA,需要一些build议。

sub timer() dim second second = 1.15740740740741e-05 'this is the amount excel counts as a second line1: application.wait "00:00:01" Range("a1").value = Range("a1").value - second if not range("D2").value = 0 then Goto line1 else Msgbox("Countdown ended") End if end sub 

我相信你不是计时航天飞机发射或任何关键的。 但是如果你想确保你的倒计时不超过30秒,你可以使用定时器function。 这是一个例子。

 Sub NewTimer() Dim Start As Single Dim Cell As Range Dim CountDown As Date 'Timer is the number of seconds since midnight. 'Store timer at this point in a variable Start = Timer 'Store A1 in a variable to make it easier to refer 'to it later. Also, if the cell changes, you only 'have to change it in one place Set Cell = Sheet1.Range("A1") 'This is the starting value. Timeserial is a good 'way to get a time CountDown = TimeSerial(0, 0, 30) 'Set our cell to the starting value Cell.Value = CountDown 'Keep executing this loop until A1 hits zero or 'even falls slightly below zero Do While Cell.Value > 0 'Update the cell. Timer - Start is the number of seconds 'that have elapsed since we set Start. Cell.Value = CountDown - TimeSerial(0, 0, Timer - Start) 'DoEvents release control ever so briefly to Windows. This 'allows Windows to do stuff like update the screen. When you 'have loops like this, your code appears frozen because it's 'not letting Windows do anything (unless you have this line) DoEvents Loop End Sub 

如果它只是每秒倒计时,我想还有另外一个选项来为Excel添加一个定时器function。 尝试在Excel中searchApplication.OnTime函数,使我们能够在Excel中使用Timer。 相关文章解释了如何在Excel中添加计时器,并在该计划时间间隔内运行macros。

这是做到这一点的最好方法。

尝试使用下面的代码:

 Sub Countup() Dim CountDown As Date CountDown = Now + TimeValue("00:00:01") Application.OnTime CountDown, "Realcount" End Sub Sub Realcount() 'Run this to count down your cell value Dim count As Range Set count = [E1] 'Put the range that you want to count down count.Value = count.Value - TimeSerial(0, 0, 1) If count <= 0 Then MsgBox "Countdown complete." Exit Sub End If Call Countup End Sub 
Interesting Posts