在Excel中停止计时器vba

问题描述:

我必须编写一个宏代码来获取给定时间作为输入格式(HH:MM:SS)。然后它应该在时间结束时在后台运行时间,它应该将消息显示为“超时”。在给予一些输入或时间之后,它从给定时间重新开始。好心建议在Excel中停止计时器vba

+0

这个地方的文章[如何显示在Excel中正在运行的时钟?](http://stackoverflow.com/questions/11867225/how-do-i-show-a-running-时钟在excel)将是一个很好的开始。 – Jeeped 2014-11-03 04:10:28

  1. 选择一个细胞并将它命名为rngElapseTime
  2. 格式的rngElapseTime小区的时间与类型为HH:MM:SS
  3. 进入开发 - > ViewCode
  4. 复制并粘贴下面的代码。

就是这样。每当用户更改rngElapseTime中的值时,下面代码中的计时器重新启动,并在TimeOver超时时提示用户。

Private Sub Worksheet_Change(ByVal Target As Range)  
    If Target.Address = Range("rngElapseTime").Address Then   
    nextScheduledTime = Now + TimeValue(Format(Target.Value, "HH:MM:SS")) 
    Application.OnTime nextScheduledTime, "TimeOver"  
    End If    
End Sub 


Public Sub TimeOver()  
    MsgBox "Time Over", vbInformation    
End Sub