如何在 Excel VBA使用批注記錄單元格的修改情況
發(fā)布時間:2022-11-04 10:14 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 秋文-27173 閱讀: 4168

在工作表模塊的代碼窗口中寫入下面的全部代碼,返回工作表中修改單元格,批注會自動記錄每次修改的信息。

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)容+當(dāng)前日期和時間+原內(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



Excel VBA入門教程2020
我要自學(xué)網(wǎng)商城 ¥60 元
進(jìn)入購買
文章評論
1 條評論 按熱度排序 按時間排序 /350
添加表情
遵守中華人民共和國的各項道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。
學(xué)習(xí)達(dá)人
風(fēng)采人生 展開
這個不錯,值的收藏,大神的杰作
2023年09月18日 09:24
0 回復(fù)
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
分類選擇:
電腦辦公 平面設(shè)計 室內(nèi)設(shè)計 室外設(shè)計 機(jī)械設(shè)計 工業(yè)自動化 影視動畫 程序開發(fā) 網(wǎng)頁設(shè)計 會計課程 興趣成長 AIGC