【问题标题】:Excel SUM formula doesn't work for hours from VBAExcel SUM 公式在 VBA 数小时内不起作用
【发布时间】:2019-03-08 08:24:11
【问题描述】:

我有 VBA 可以计算在项目上花费的时间,并且在用户按下 STOP 按钮后,它会将时间输入到其他工作表中。一切正常,期望 SUM 公式计算花费的总小时数。公式 =SUM(A2:A15290) 在单元格 A1 中给出 00:00:00(零)的值。我尝试以不同的方式“格式化单元格”,但没有任何效果。如果我手动输入时间到单元格,那么一切正常。也许问题出在我的 VBA 中,它正在进入单元格的计数时间?

这是我正在使用的宏:

Option Explicit

Sub StartTimer()

    Dim Start As Single, RunTime As Single
    Dim ElapsedTime As String

    'Set the control cell to 0 and make it green
    Range("Y18").Value = 0
    Range("Y14").Interior.Color = 5296274 'Green

    Start = Timer    ' Set start time.
    Debug.Print Start
    Do While Range("Y18").Value = 0

        DoEvents    ' Yield to other processes.
        RunTime = Timer    ' current elapsed time
        ElapsedTime = Format((RunTime - Start) / 86400, "h:mm:ss")
        'Display currently elapsed time in A1
        Range("Y14").Value = ElapsedTime
        Application.StatusBar = ElapsedTime

    Loop

    Range("Y14").Value = ElapsedTime
    Range("Y14").Interior.Color = 192 'Dark red
    Application.StatusBar = False

End Sub

Sub StopTimer()
Application.ScreenUpdating = False
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
    'Set the control cell to 1
    Range("Y18").Value = 1

Set copySheet = Worksheets("MAIN")
Set pasteSheet = Worksheets("Time Spent")

copySheet.Range("Y14").Copy
pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 是否'以不同的方式'包含[hh]:mm ?

标签: vba excel time sum


【解决方案1】:

您正在将看起来像时间的文本放入单元格中。使用实时。

Dim Start As DOUBLE, RunTime As DOUBLE
Dim ElapsedTime As DOUBLE

...

Start = Timer    ' Set start time.

...

    DoEvents    ' Yield to other processes.
    RunTime = Timer    ' current elapsed time
    ElapsedTime = (RunTime - Start) / 86400

    Range("Y14").Value = ElapsedTime
    Range("Y14").numberformat = "[hh]:mm:ss"

记住要小心跨越午夜的开始和结束。计时器在午夜重置,Excel 不喜欢负时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2011-10-25
    • 2019-01-08
    相关资源
    最近更新 更多