【发布时间】:2018-05-29 22:17:51
【问题描述】:
我有单元格“B16”,如果特定机器正在运行,则显示“1”,如果未运行,则显示“0”。这些值是实时更新的,但我想记录该值何时更改的时间戳(从 1 到 0 或反之亦然)并创建一个列表,其中下一个可用单元格填充下一个状态更改和时间戳.这样做的目的是能够确定机器何时停机、停机多长时间以及何时重新开始运行。
谢谢你, 格斯特拉达
【问题讨论】:
我有单元格“B16”,如果特定机器正在运行,则显示“1”,如果未运行,则显示“0”。这些值是实时更新的,但我想记录该值何时更改的时间戳(从 1 到 0 或反之亦然)并创建一个列表,其中下一个可用单元格填充下一个状态更改和时间戳.这样做的目的是能够确定机器何时停机、停机多长时间以及何时重新开始运行。
谢谢你, 格斯特拉达
【问题讨论】:
仅当目标单元格 (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
【讨论】: