Code Tự động Ghi Nhận Thời Gian Nhập Dữ Liệu
Có thể bạn quan tâm
Làm thế nào để có thể tự động ghi nhận thời gian dữ liệu được nhập vào trong file Excel? Chỉ với vài dòng code đơn giản trong VBA là bạn có thể làm được việc này rồi. Hãy cùng Học Excel Online tìm hiểu cách làm nhé:
Code tự động ghi nhận thời gian nhập dữ liệu
Đặc điểm hàm NOW trong Excel
Thông thường để xác định một thời điểm cụ thể trong Excel, chúng ta có hàm NOW. Ví dụ như sau:

Hàm NOW sẽ ghi nhận cả Ngày/tháng/năm và Giờ:phút:giây theo thời gian thực.
Tuy nhiên nếu sử dụng hàm NOW, kết quả của hàm sẽ luôn tự động thay đổi mỗi khi Excel thực hiện tính toán. Trong khi đó mục tiêu của chúng ta là chỉ ghi nhận kết quả thời điểm khi chúng ta kết thúc thao tác nhập dữ liệu, và kết quả đó không được thay đổi.
Để làm điều đó mà không dùng tới VBA, bạn phải làm thủ công các bước sau:
- Bước 1: Viết hàm NOW, sau đó copy kết quả của hàm
- Bước 2: Dán kết quả của hàm để tránh hàm tự động cập nhật kết quả

Viết Code VBA để tự động ghi nhận thời gian nhập dữ liệu
Nếu việc nhập dữ liệu liên tục thì cách làm trên khá bất tiện vì số thao tác nhiều và thủ công. Do đó để có thể tự động hóa việc này, chúng ta ứng dụng VBA trong Excel như sau:
Bước 1: Sử dụng hàm NOW trong VBA
Ví dụ bạn nhập dữ liệu vào ô A3, muốn điền kết quả thời gian thực vào ô B3, câu lệnh như sau:
ActiveSheet.Range(“B3”).Value = Now
Bước 2: Gắn câu lệnh hàm NOW vào sự kiện khi nhập dữ liệu
(tham khảo: Tìm hiểu về ý nghĩa và cách dùng các sự kiện trong VBA Excel)
Để có thể tự động điền thời gian thực bởi hàm NOW trong VBA, chúng ta phải gắn với sự kiện thay đổi dữ liệu trong ô A3.
Ví dụ bạn thay đổi dữ liệu tại ô A3 trong Sheet1 thì sẽ gọi sự kiện Worksheet_Change tại Sheet1 và đưa câu lệnh trong bước 1 vào

1, Nháy đúp vào Worksheet cần tạo sự kiện trong cửa sổ Project, ví dụ là Sheet1
2, Chọn đối tượng Worksheet
3, Chọn sự kiện Change
4, Một Sub được tự động tạo ra là Worksheet_Change
5, Viết code bên trong Sub đó:
Cú pháp:
If Not Application.Intersect(Range(“A3”), Target) Is Nothing Then … End If
Nghĩa là xét sự thay đổi có diễn ra trong ô A3 hay không
Cú pháp:
ActiveSheet.Range(“B3”).Value = Now
Nghĩa là gán giá trị Now vào ô B3
Khi đó quay trở lại Excel, nhập dữ liệu tại ô A3 sẽ có ngay giá trị thời gian thực tại ô B3
Bước 3: Tổng quát câu lệnh, mở rộng phạm vi tác động
Để câu lệnh được tối ưu, chúng ta không chỉ xét 1 ô A3 mà có thể sẽ áp dụng trong 1 vùng rộng hơn: A2:A100, hoặc hơn nữa là cả cột A.
Tại bất cứ ô nào được nhập nội dung trong cột A, tại cột B trên dòng tương ứng cũng sẽ lấy giá trị kết quả hàm NOW
Như vậy câu lệnh tổng quát là:
If Not Application.Intersect(Range(“A2:A100”), Target) Is Nothing Then
If Range(“A” & Target.Row).Value = “” Then
Range(“B” & Target.Row).ClearContents
Else
Range(“B” & Target.Row).Value = Now
End If
End If
Trong đó:
Intersect(Range(“A2:A100”), Target) là vùng diễn ra sự kiện. Bạn thay đổi tọa độ trong Range(“….”) là được.
Target chính là mục tiêu (ô được chọn).
Target.Row là số dòng của ô được chọn.
Logic là:
Xét sự kiện diễn ra trong vùng A2:A100
Nếu giá trị trong cột A tại dòng tác động là rỗng (không có nội dung) thì
Xóa nội dung trong cột B, tại dòng tương ứng với dòng đang tác động
Còn lại / Mặt khác (giả định trên bị sai)
Gán giá trị kết quả hàm NOW vào cột B, tại dòng đang tác động
Kết thúc hàm if xét giá trị rỗng
Kết thúc hàm if xét vùng diễn ra sự kiện
Kết quả thu được như sau:

Các bạn có thể tham khảo thêm trong file mẫu dưới đây:
Link tải file mẫu: http://bit.ly/2KcLlQS
Để biết cách ứng dụng VBA tốt hơn, bạn hãy tham khảo khóa học VBA101 của Học Excel Online ngay nhé.
Từ khóa » Nhập Dữ Liệu Bằng Vba
-
Cách Nhập Dữ Liệu Trong Excel Bằng Form Tự Tạo (update 2022)
-
Hướng Dẫn Chi Tiết Các Bước Tạo Form Nhập Liệu Bằng VBA Excel
-
Nhập Dữ Liệu Trong Excel Bằng Form Tự Tạo Với 2 Cách - IIE Việt Nam
-
Cách Tạo Form Nhập Dữ Liệu Tự động Trong Excel Bằng VBA - YouTube
-
Hướng Dẫn Cách Thêm Mới Nội Dung Vào Bảng Danh Sách Trong ...
-
Cách Tạo Biểu Mẫu Nhập Dữ Liệu Tự động Trong Excel VBA
-
Macro VBA để Ghép Nối Cột Dữ Liệu Trong Excel - Microsoft Support
-
Cách Tạo Form Nhập Dữ Liệu Tự Động Trong Excel 7/2022
-
Tạo Bảng Nhập Dữ Liệu Nhiều Dòng Bằng VBA Excel
-
Làm Cách Nào để Khóa Hoặc Bảo Vệ Các ô Sau Khi ... - ExtendOffice
-
Cách định Dạng Dữ Liệu Bảng Tính Excel Bằng VBA
-
Tìm Hiểu Về VBA Là Gì? Giải Thích đầy đủ Nhất Về VBA Excel 2022 Có ...
-
Hướng Dẫn Cách Viết Code Tự động Ghi Nhận Thời Gian Nhập Dữ Liệu ...
-
Cần Xin Code Vba Cho Bảng Nhập Liệu Mong Các Cao Thủ Trợ Giúp