介紹excel自動更新日期的兩種情況,分別使用TODAY、NOW函數和VBA代碼實現。
excel自動更新日期的方法很簡單,使用TODAY 函數就可以做到。
比如,下圖A1單元格輸入公式:=TODAY(),回車,就可以出現當前系統日期。這個日期會隨時間不同,而自動更新日期。比如明天打開工作表日期就會是明天的日期,以此類推。
excel自動更新日期還有一個相關函數,就是NOW函數,是返回當前日期和時間的序列號。
上圖所示的A1單元格公式為:=TODAY(),B1單元格的公式為:=NOW()。
這兩個函數都可以實現excel自動更新日期。
延伸一下,比如A1單元格永遠顯示當前系統相對的昨天的日期,可以使用公式:=today()-1,明天就加一天=today()+1。
上面介紹的excel自動更新日期,每次打開文件,該單元格的內容就會自動改成當前日期。如果是需要根據某個單元格發生變化而改變日期,可以使用VBA代碼實現。
如下圖的效果,我們在B列輸入內容,然后A列才自動更新日期,而且這個日期只是當時輸入的時候的日期,當工作薄再次打開,這個日期是固定不變的。
操作方法:在當前工作表標簽,右鍵,選擇“查看代碼”,打開VBE編輯器,復制下面的代碼,關閉VBE,回到excel工作表B列輸入內容,A列就會自動更新日期。
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target.Cells ‘如果用填充等同時改變了多個單元格,則一個個的進行判斷
With c
If .Column = 2 Then ‘判斷被改變的單元格是否在B列
Application.EnableEvents = False
.Offset(0, -1) = Date ‘如果在B列,則在同行的A列填充當前系統日期
Application.EnableEvents = True
End If
End With
Next
End Sub
上面的代碼解釋:
If .Column = 2 表示第二列的任意個單元格發生變化,如果你是第三個單元格,則改成 If .Column = 3,以此類推。
.Offset(0, -1) = Date offset表示偏移,比如.Offset(0, -1)表示同行左邊一列 .Offset(0,2)表示同行右邊數2列 ,.Offset(1,2)表示下面一行,右邊數2列,=date表示將這個單元格改成當前的日期。