在excel vba中停止计时器

时间:2014-11-03 03:57:15

标签: excel vba

我必须编写一个宏代码,以格式(HH:MM:SS)输入给定时间作为输入。然后它应该在后台运行时间结束时它应该显示一条消息"时间超过"。在给出一些输入或时间之后它会从给定时间重新开始。请建议

1 个答案:

答案 0 :(得分:0)

  1. 选择一个单元格并将其命名为 rngElapseTime
  2. rngElapseTime 单元格设置为Time,类型为HH:MM:SS
  3. 转到开发者 - > ViewCode
  4. 复制并粘贴以下代码。
  5. 就是这样。每次用户更改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