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

2021-10-03 22:02:23 字數 1385 閱讀 9126

change事件看起來並不複雜,但是在很多應用場景,都會用到change事件,並且可以給大家帶來很多任務作上的便利性。

例如很多使用者都希望能夠儲存單元格內容的修訂記錄,但是靠人工記錄下來這個修改過程,確實有些繁瑣,合理使用change事件,就可以實現這個功能,修訂記錄儲存在單元格批註中。

當前資料表內容如下所示。

現在做如下修改:

math_05 => cs_01

tom => jerry

修改後工作表如下圖所示,修訂記錄自動新增到批註中。

示例**如下。

private

sub worksheet_change(

byval target as range)

dim strcmt as

string

false

with target

if .count =

1then

false

on error

resume

next

strcmt = .comment.text

if err.number >

0then

strcmt =

date

&"-"

& .value

.addcomment strcmt

else

strcmt = strcmt &

chr(10)

&date

&"-"

& .value

.comment.text strcmt

endifon error

goto

0true

endif

endwith

true

endsub

【**解析】

第3行**禁用系統事件啟用。

第5行**判斷是否只是修改了單個單元格。

第6行**禁止顯示告警。

第7行**忽略錯誤繼續執行。

第8行讀取單元格的注釋,如果單元格中沒有注釋,那麼第9行**進行錯誤捕獲。

第10行**為生成批註內容。

第11行**為單元格新增批註。

如果單元格已經存在批註,那麼第13和14行**將在批註中追加單元格的最新值。

第16行恢復系統的錯誤處理機制。

第17行恢復系統錯誤顯示。

第20行**啟用系統事件啟用。

excel匯出,合併單元格更改單元格樣式

市表2考核 wb.setsheetname 0 市表2考核 給excel命名 hssfrow row sheet.createrow short 0 設定最頂欄得固定欄第一行 根據業務需求 hssfrow row2 sheet.createrow short 1 第二行 hssfrow row4 s...

Excel工作表中定位最後單元格(END屬性)

vba實現自動化,經常需要定位工作表中的最後單元格,以便於獲取已有資料,或者在該單元格之後寫入新資料。使用range物件的end屬性可以定位最後單元格。假設工作表中的資料如下所示。單元格區域 a5 a7 看不出是否為空,因此在c列對其內容進行了說明。執行示例 sub demo1 dim rnglas...

excel 更改單元格內容

新建乙個excel工作薄,按alt f11 插入乙個模組,將下面的 複製進去,然後執行 快捷鍵f5 worksheets 1 1是你要操作的sheet,注意了。sub test dim str dim i,j i 1 j 1 for r 1 to worksheets 1 usedrange.row...