【问题标题】:Need help to auto enter date and time and calculate time elapsed since previous row's entry需要帮助来自动输入日期和时间并计算自上一行输入以来经过的时间
【发布时间】:2018-10-26 15:26:19
【问题描述】:

我需要形成一个电子表格或程序,当我输入有关临床事件的文本时,各个行将自动输入日期和时间。

当我将文本输入下一行时,我需要它来输入那个时间,并且在另一列中给我从前一行输入以来经过的时间。

我已经在互联网上搜索了几个月,因为多年前我有一个可以在 Windows 上执行此操作的“小”程序。但现在我需要这样才能在 Mac、iOS 和 Windows 上工作。我不惜任何代价都找不到任何东西,但是可以看到很多东西来跟踪计费时间。我有Excel,欢迎提出建议。我不是程序员,但刚过去的朋友说他认为他可以用VB做?提前致谢。

【问题讨论】:

    标签: ios excel vba datetime excel-formula


    【解决方案1】:

    我不知道苹果产品上的 vba 是否不同,但这是可以做到的一种方法(至少在 Windows 中)。

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim ws As Worksheet
        Set ws = Target.Worksheet
    
        If Target.Column >= 2 Then
            ws.Range("A" & Target.Row).Value = Now()
            If Target.Row - 1 <> 0 Then
                ws.Range("B" & Target.Row).Value = DateDiff("s", ws.Range("A" & Target.Row - 1).Value, ws.Range("A" & Target.Row).Value)
            End If
        End If
    End Sub
    

    这将在 A 列中放置一个时间戳,并在 B 列中放置前一行输入以来的时间(以秒为单位),只要在该行的任何其他列中输入任何内容。注意:错误检查有限。

    【讨论】:

    • 代码看起来不错,我知道只要 C 列或更多列中的任何单元格的值正确...更改...但其他地方需要更改某些内容...可以你请解释一下还需要做什么
    • 这会将时间戳放入A列ws.Range("A" &amp; Target.Row).Value = Now(),如果它是第二行或更往下,它将计算当前行和上一行的日期差并将其放入B列ws.Range("B" &amp; Target.Row).Value = DateDiff("s", ws.Range("A" &amp; Target.Row - 1).Value, ws.Range("A" &amp; Target.Row).Value)。我不确定你的意思,它还需要做什么?
    • A1 将是日期和时间,显示为 mm/dd/yy - 2:10pm B1 将是我输入的文本,然后将填充 A1。 (事件 - 例如给予药物) C1(文本) D1(空白或 0)但 D2 将是自上次输入(上一行)以来的时间,以 hr;mm:ss 为单位。因此,我可以为“干预”“加盖时间戳”,并查看自前一行/进入以来已经过了多长时间。
    • 这里不需要声明工作表。 Worksheet_Change 默认查看 Target 表。这些行在这里是多余的
    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 2018-05-25
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    相关资源
    最近更新 更多