'修改前的值Private originalValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
'忽略其他单元格If Not (Target.Column = 1 Or Target.Column = 4) Then Exit Sub
Dim currentCell As Range
Dim selectedRange As Range
Set selectedRange = Application.Union(Target, Application.Selection)
'选择多个单元格时忽略If selectedRange.Count <> 2 Then
Exit Sub
End If
Set currentCell = selectedRange.Cells(1, 1)
'范围选择的时候报错If Not (currentCell.Column = 1 Or currentCell.Column = 4) Then Exit Sub
Dim startCell As Range
Set startCell = Cells(currentCell.Row, currentCell.Column + 1)
Dim updateCell As Range
Set updateCell = Cells(currentCell.Row, currentCell.Column + 2)
'第一次输入If currentCell.Column = 1 And originalValue = "" And originalValue <> currentCell.Value Then
startCell.Value = Now()
updateCell.Value = Now()
Exit Sub
End If
'更新内容If currentCell.Column = 1 And currentCell.Value <> "" And originalValue <> currentCell.Value2 Then
updateCell.Value = Now()
Exit Sub
End If
'完成时间If Target.Column = 4 And Target.Value = "" Then
currentCell.Value = Now()
Exit Sub
End If
ifCheckChange = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'获取修改前的值originalValue = Target.Value
End Sub