单元格编辑/更改时秒表停止

时间:2017-12-16 15:41:36

标签: vba excel-vba excel

我的秒表有问题。每当在同一张纸/工作簿上编辑单元格或单独的Excel文件时,秒表就会停止。

我知道这个问题与当你打开一个单元格以编辑所有宏暂停的事实有关。

是否有可以在我的特定情况下使用的解决方法?

注意:我需要获取经过的时间作为一个值,以便它可以在文件的另一个函数中使用。

    Public StopIt As Boolean
    Public ResetIt As Boolean
    Public LastTime

    Private Sub CommandButton1_Click()


    Dim StartTime, FinishTime, TotalTime, PauseTime
    StopIt = False
    ResetIt = False
    If Range("F5") = 0 Then
      StartTime = Timer
      PauseTime = 0
      LastTime = 0
    Else
      StartTime = 0
      PauseTime = Timer
    End If
    StartIt:
      DoEvents
      If StopIt = True Then
        LastTime = TotalTime
        Exit Sub
      Else
        FinishTime = Timer
        TotalTime = FinishTime - StartTime + LastTime - PauseTime
        TTime = TotalTime * 100
        HM = TTime Mod 100
        TTime = TTime \ 100
        hh = TTime \ 3600
        TTime = TTime Mod 3600
        MM = TTime \ 60
        SS = TTime Mod 60
        Range("F5").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(HM, "00")
        If ResetIt = True Then
          Range("F5") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
          LastTime = 0
          PauseTime = 0
          End
        End If
        GoTo StartIt
      End If
    End Sub


    Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
    StopIt = True
    End Sub


    Private Sub CommandButton3_Click()
      Range("F5").Value = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
      LastTime = 0
      ResetIt = True
    End Sub

0 个答案:

没有答案