首页 > 解决方案 > VBA Excel 创建带有时间戳的运行列表

问题描述

我有单元格“B16”,如果特定机器正在运行,则显示“1”,如果未运行,则显示“0”。这些值是实时更新的,但我想记录该值何时更改的时间戳(从 1 到 0 或反之亦然)并创建一个列表,其中下一个可用单元格填充下一个状态更改和时间戳. 这样做的目的是能够确定机器何时停机、停机多长时间以及何时重新开始运行。

谢谢你,格斯特拉达

标签: excelvba

解决方案


仅当目标单元格 (B6) 发生更改时,才会执行此代码。

当 B6 中的值更改时,它将发布一个时间戳(直到第二个),从第一个实例的 B7 开始,下一个实例的 B8 开始,依此类推......

将此代码粘贴到目标单元格 (B6) 所在的工作表上。此外,您需要将“Sheet1”的所有实例更改为您的工作表名称。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range
    Set KeyCells = Range("B6")

    Dim WS As Worksheet
    Set WS = ThisWorkbook.Sheets("Sheet1")

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
        Is Nothing Then
        Dim LRow As Integer
        LRow = WS.Range("B" & WS.Rows.Count).End(xlUp).Row
        WS.Range("B" & LRow + 1).Value = Now()
    End If
End Sub

推荐阅读