亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1160
2025-04-02
excel圖表如何記錄指定單元格每次修改的時間?
Q:我想要在用戶修改工作表指定單元格的內容時,在另一工作表中記錄修改的時間。例如,在工作表Sheet1的單元格B2中,每次用戶將該單元格值修改為某一大于0的數值時,則在工作表LogB2中記錄下其修改的時間。
具體地說,如果在2019年10月24日19時30分30秒,用戶將單元格B2中的值修改為280,那么在工作表LogB2中記錄下時間2019-10-24 19:30:30;如果在2019年10月25日8時10分15秒又將單元格B2中的值修改為100,那么工作表LogB2中增加一條時間記錄2019-10-25 8:10:15。
A:這可以使用工作表事件來完成。
打開VBE,雙擊工作表Sheet1對象模塊,輸入代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngInput As Range
Dim rngLog As Range
‘要記錄其修改時間的單元格
Set rngInput = Range(“B2”)
‘確定單元格是目標單元格
If Intersect(rngInput, Target.Cells(1, 1)) Is Nothing Then Exit Sub
‘修改為小于0的值不記錄
If rngInput.Value <= 0 Then Exit Sub
‘將修改單元格時的時間記錄到工作表LogB2
With Worksheets(“LogB2”)
‘工作表最后一行
Set rngLog = .Cells(.Rows.Count,1).End(xlUp)
‘確定工作表最后一行單元格含有值
If Len(rngLog.Value) > 0 Then
‘移至下方相鄰的空單元格
Set rngLog = rngLog.Offset(1, 0)
End If
End With
‘寫入當前時間
rngLog.Value = Now
End Sub
Q:我想增加記錄另一個單元格的修改時間,例如單元格D2每次修改的值大于0時,將修改的時間記錄到工作表LogD2中,如何編寫代碼?
A:同樣使用工作表事件來完成。
打開VBE,雙擊工作表Sheet1對象模塊,輸入代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngLog As Range
Dim wksLog As Worksheet
‘根據所修改的單元格
‘賦值相應的工作表
Select Case Target.Cells(1, 1).Address
Case “$B$2”
Set wksLog =Worksheets(“LogB2”)
Case “$D$2”
Set wksLog =Worksheets(“LogD2”)
Case Else
Exit Sub
End Select
‘如果修改的值小于0則不記錄修改時間
If Target.Cells(1, 1).Value <= 0 ThenExit Sub
With wksLog
‘工作表數據所在的最后一行
Set rngLog = .Cells(.Rows.Count, 1).End(xlUp)
‘如果最后一個數據單元格包含值
If Len(rngLog.Value) > 0 Then
‘偏移到下方相鄰單元格
Set rngLog = rngLog.Offset(1, 0)
End If
End With
‘寫入當前時間
rngLog.Value = Now
End Sub
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。