Excel工作表事件(4)- 單元格修訂記錄跟蹤

Change事件看起來並不複雜,但是在很多應用場景,都會用到Change事件,並且可以給大家帶來很多工作上的便利性。
例如很多用戶都希望能夠保存單元格內容的修訂記錄,但是靠人工記錄下來這個修改過程,確實有些繁瑣,合理使用Change事件,就可以實現這個功能,修訂記錄保存在單元格批註中。
當前數據表內容如下所示。
在這裏插入圖片描述
現在做如下修改:

Math_05 => CS_01
Tom => Jerry

修改後工作表如下圖所示,修訂記錄自動添加到批註中。
在這裏插入圖片描述
示例代碼如下。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strCmt As String
    Application.EnableEvents = False
    With Target
        If .Count = 1 Then
            Application.DisplayAlerts = False
            On Error Resume Next
            strCmt = .Comment.Text
            If Err.Number > 0 Then
                strCmt = Date & "-" & .Value
                .AddComment strCmt
            Else
                strCmt = strCmt & Chr(10) & Date & "-" & .Value
                .Comment.Text strCmt
            End If
            On Error GoTo 0
            Application.DisplayAlerts = True
        End If
    End With
    Application.EnableEvents = True
End Sub

【代碼解析】
第3行代碼禁用系統事件激活。
第5行代碼判斷是否只是修改了單個單元格。
第6行代碼禁止顯示告警。
第7行代碼忽略錯誤繼續執行。
第8行讀取單元格的註釋,如果單元格中沒有註釋,那麼第9行代碼進行錯誤捕獲。
第10行代碼爲生成批註內容。
第11行代碼爲單元格添加批註。
如果單元格已經存在批註,那麼第13和14行代碼將在批註中追加單元格的最新值。
第16行恢復系統的錯誤處理機制。
第17行恢復系統錯誤顯示。
第20行代碼啓用系統事件激活。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章