在工作表模塊的代碼窗口中寫入下面的全部代碼,返回工作表中修改單元格,批注會自動記錄每次修改的信息。
Option Explicit
Dim RngValue As String '定義一個模塊給變量,用于保存單元格中的數(shù)據(jù)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub '選中多個單元格時退出程序
If Target.Formula = "" Then '根據(jù)選中的單元格內(nèi)容給變量RngVaue賦值
RngValue = "空"
Else
RngValue = Target.Text
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub
Dim Cvalue As String '定義變量保存單元格修改后的內(nèi)容
If Target.Formula = "" Then '判斷單元格是否被修改為空單元格
Cvalue = "空"
Else
Cvalue = Target.Formula
End If
If RngValue = Cvalue Then Exit Sub '如果單元格修改前后的內(nèi)容一樣則退出程序
Dim RngCom As Comment '定義一個批注類型的變量,名稱為RngCom
Dim ComStr As String '定義變量ComStr,用來保存批注的值
Set RngCom = Target.Comment '將被修改單元格的批注賦給變量RngCom
If RngCom Is Nothing Then Target.AddComment '如果單元格中沒有批注則新建批注
ComStr = Target.Comment.Text '將批注的內(nèi)容保存到變量ComStr中
'----重新修改批注的內(nèi)容=原批注內(nèi)容+當前日期和時間+原內(nèi)容+修改后的新內(nèi)容
Target.Comment.Text Text:=ComStr & Chr(10) & _
Format(Now(), "yyyy-mm-dd hh:mm") & _
" 原內(nèi)容:" & RngValue & _
"修改為: " & Cvalue
Target.Comment.Shape.TextFrame.AutoSize = True '根據(jù)批注內(nèi)容自動調(diào)整批注大小
End Sub
承擔因您的行為而導(dǎo)致的法律責任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。