Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Target.Parent.Range("I:I")
If Target.Count > 1 Then Exit Sub
If Intersect(Target, rng) Is Nothing Then Exit Sub
If Target.Value = 1 Then Target.Offset(, 1) = Date
End Sub
Đây là đoạn code sẽ chạy: khi bất kì cell nào của cột I được nhập số 1, thì dòng tương ứng ở cột J sẽ hiện ngày/tháng/năm (hay tháng/ngày/năm) hiện tại (không đổi).
Nếu bạn viết code như dưới đây thì khi dữ liệu bất kì cell nào của cột I thay đổi, thì dòng tương ứng ở cột J sẽ hiện ngày/tháng/năm hiện tại (không đổi). Đây chính là điều bạn thuytram47 muốn hỏi
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Target.Parent.Range("I:I")
If Intersect(Target, rng) Is Nothing Then Exit Sub
If Target.Value <> "" Then Target.Offset(, 1) = Date
End Sub
- Bạn có thể thay Range("I:I") bằng địa chỉ cell (VD: Range("A1") thì B1 sẽ hiện DATE.
- Then Target.Offset(, 1) = Date có nghĩa "Ô sát ô nguồn sẽ hiện DATE".
- Bạn có thể thay DATE bằng NOW để hiện cả ngày giờ (Bạn nên kéo rộng lớn ô thông báo để hiện đủ ngày, giờ.)