Chào các bác, hôm nay em xin chia sẻ một mẹo nhỏ mà em mới tìm ra để làm báo cáo tự động cập nhật thời gian. Cái này không phải là real-time như web đâu ạ, mà là mỗi khi mở file Excel lên thì nó sẽ tự động cập nhật lại ngày giờ sửa đổi cuối cùng. Rất hữu ích cho các báo cáo cần theo dõi tiến độ hoặc thời điểm cuối cùng chỉnh sửa.
Em thường xuyên phải làm báo cáo và đôi khi quên mất lần cuối mình chỉnh sửa là khi nào. Giờ có cái này thì tiện hơn hẳn.
Cách làm rất đơn giản, chỉ cần chèn một đoạn code VBA nhỏ vào file của bạn. Các bước như sau:
- Nhấn
Alt + F11để mở cửa sổ VBA. - Trong cửa sổ Project Explorer (thường ở bên trái), double click vào
ThisWorkbook. - Dán đoạn code sau vào khung bên phải:
Private Sub Workbook_Open()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay "Sheet1" bằng tên sheet bạn muốn cập nhật
Dim lastRow As Long
' Tìm dòng trống cuối cùng trong cột A (hoặc cột bạn muốn ghi nhận)
lastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row + 1
' Ghi ngày giờ hiện tại vào ô B (hoặc cột bạn muốn ghi nhận)
ws.Cells(lastRow, "B").Value = Now
' Nếu bạn muốn ghi đè lên một ô cố định (ví dụ A1 là tiêu đề, B1 là ngày giờ):
' ws.Range("B1").Value = Now
' Lưu lại workbook để thay đổi có hiệu lực
ThisWorkbook.Save
End SubLưu ý:
- Bạn cần thay
"Sheet1"bằng tên sheet thực tế của bạn. - Nếu bạn muốn ghi nhận ngày giờ sửa đổi vào một ô cố định (ví dụ: ô
B1luôn hiển thị ngày giờ sửa đổi lần cuối), bạn có thể sửa lại code như phần comment trong code. - Sau khi dán code, bạn cần LƯU FILE DƯỚI DẠNG .xlsm (Excel Macro-Enabled Workbook).
Khi mở lại file, bạn sẽ thấy ô được chỉ định đã tự động cập nhật ngày giờ. Nếu bạn chỉ định ghi vào dòng cuối cùng như code mẫu, mỗi lần mở file sẽ thêm một dòng ghi nhận ngày giờ. Nếu muốn chỉ hiển thị 1 ô duy nhất, hãy dùng cách ghi đè lên ô cố định.
Chúc các bác thành công!