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...