Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫的一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,再加上成功的市場營銷,使Excel成為最流行的個人計算機數(shù)據(jù)處理軟件。 Q:我想要在用戶修改工作表指定單元格的內(nèi)容時,在另一工作表中記錄修改的時間。例如,在工作表Sheet1的單元格B2中,每次用戶將該單元格值修改為某一大于0的數(shù)值時,則在工作表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="">=> ‘將修改單元格時的時間記錄到工作表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 ‘根據(jù)所修改的單元格 ‘賦值相應(yīng)的工作表 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="">=> With wksLog ‘工作表數(shù)據(jù)所在的最后一行 Set rngLog = .Cells(.Rows.Count, 1).End(xlUp) ‘如果最后一個數(shù)據(jù)單元格包含值 If Len(rngLog.Value) > 0 Then ‘偏移到下方相鄰單元格 Set rngLog = rngLog.Offset(1, 0) End If End With ‘寫入當前時間 rngLog.Value = Now End Sub Excel整體界面趨于平面化,顯得清新簡潔。流暢的動畫和平滑的過渡,帶來不同以往的使用體驗。 |
溫馨提示:喜歡本站的話,請收藏一下本站!