Ghi ngày tháng và thời gian tự động khi dữ liệu thay đổi trong excel

 Giả sử, bạn có một dãy các giá trị, và bạn muốn thay đổi hoặc nhập vào giá trị mới trong cột B, thì ngày tháng và thời gian trong cột C cũng tự động thay đổi

Bạn có thể hoàn thành việc trên bằng các mã VBA. Vui lòng làm như sau:

1. Nhấn ALT+F11 để mở cửa sổ Microsoft Visual Basic for Applications.

2. Sau đó chọn trang tính bạn đang hoạt động phía bên trái Project Explorer, nhấp 2 cái để mở Module, sau đó sao chép đoạn mã VBA sau vào cửa sổ code của Worksheet bạn đang làm việc vì đây là sự kiện Worksheet_change

code: 

Private Sub Worksheet_Change(ByVal Target As Range)


Dim WorkRng As Range

Dim Rng As Range

Dim xOffsetColumn As Integer

Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)

xOffsetColumn = 1

If Not WorkRng Is Nothing Then

    Application.EnableEvents = False

    For Each Rng In WorkRng

        If Not VBA.IsEmpty(Rng.Value) Then

            Rng.Offset(0, xOffsetColumn).Value = Now

            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"

        Else

            Rng.Offset(0, xOffsetColumn).ClearContents

        End If

    Next

    Application.EnableEvents = True

End If

End Sub


3. Lưu và đóng cửa sổ lại. Bây giờ khi bạn thay đổi giá trị trong cột B, ngày tháng và thời gian sẽ được tự động ghi lại trong cột C.

Chú ý:

1. Trong đoạn mã trên, bạn có thể xác định “B:B” là bất cứ cột nào bạn muốn thay đổi dữ liệu trong đoạn sau: Set WorkRng = Intersect(Application.ActiveSheet.Range(“B:B”), Target).

2. Với xOffsetColumn = 1, bạn có thể chèn và cập nhật ngày tháng và thời gian cho cột đầu tiên kế bên cột giá trị bạn thay đổi. Bạn có thể thay đổi con số này thành những số khác như 2,3,4,5… điều này nghĩa là ngày tháng và thời gian sẽ được chèn vào cột thứ 2, 3,4,5 bên cạnh cột có giá trị thay đổi.

3. Khi bạn xóa giá trị trong cột cần thay đổi, ngày tháng và thời gian cũng sẽ bị xóa theo.

Post a Comment

Mới hơn Cũ hơn