首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VBA Worksheet_Change 記錄修改時間並自定義顯示格式(如 mm-dd)

     編輯:程式設計綜合問答

完整代碼


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Column = 4 Then  ' D 列修改時
            With Cells(Target.Row, 6)  ' F 列寫入時間
                .NumberFormatLocal = "m-d"  ' 顯示 月-日,如 01-15
                .Value = Now
            End With
        End If
    End If
End Sub

關鍵點

  • Target.Count = 1:僅單儲存格編輯觸發,避免批量操作誤觸發。
  • Target.Column = 4:監視 D 列(第 4 列)。
  • .NumberFormatLocal = "m-d":設置儲存格顯示格式,不影響底層日期值。常用格式:
    • "yyyy-m-d":2024-1-15
    • "mm-dd":01-15
    • "hh:mm:ss":14:30:05
  • .Value = Now:寫入當前日期時間(含秒),顯示按格式截取。

進階:防止遞歸觸發


Application.EnableEvents = False
Cells(Target.Row, 6).Value = Now
Application.EnableEvents = True

若該宏會觸發其他 Change 事件,需暫時關閉事件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved