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.