excel的vba中实现简单的todo-list任务管理工具

2023-11-10 16:52:47
159
'修改前的值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