Chào các bạn,
Trong bài học này chúng ta tìm hiểu thêm về VBA trong việc sử dụng VBA để tự động so sánh các giá trị thời gian.
Chúng ta tìm hiểu nội dung này thông qua một số ví dụ sau:
Yêu cầu 1: Cho bảng dữ liệu sau, sử dụng nút lệnh để tự động so sánh và tô màu các giá trị ở cột A mà nhỏ hơn giá trị được so sánh ở ô C1
Cách làm:
Trước hết chúng ta cần phân tích được trình tự thực hiện của yêu cầu như sau:
Trình tự này thực hiện trong VBA như sau:
Chúng ta thực hiện từng bước như sau:
Bước 1: Mở cửa sổ VBA, tạo 1 Module
Click chuột phải vào cửa sổ Project > Chọn Insert > Module
Trong Module này chúng ta tạo 1 sub có tên là So_Sanh_Ngay
Bước 2: Thực hiện viết Code vòng lặp
Trong Sub So_Sanh_Ngay chúng ta viết các nội dung sau:
Gán 1 biến bất kỳ, ví dụ là chữ i (gọi là biến i), biến này sẽ sử dụng các giá trị là số tự nhiên
Dim i as Integer
Đưa biến i vào vòng lặp như sau:
For i = 2 to 9
Next i
Biến i chạy từ 2 đến 9, tương ứng với số dòng ở vùng A2:A9
Bước 3: Thực hiện so sánh các giá trị trong vòng lặp
Trong vòng lặp, chúng ta viết code so sánh như sau:
If Cells(i, 1).value < Cells(1, 3).value then
Cells(i, 1).Font.Color = vbRed
End if
Câu lệnh trên được hiểu là: Nếu giá trị ở cột A, dòng i nhỏ hơn giá trị ở ô C1 (dòng 1, cột 3) thì ô ở cột A, dòng i đó sẽ được tô màu đỏ
Toàn bộ Macro như sau:
Bước 4: gán Macro vào nút lệnh
Click chuột phải vào nút lệnh, chọn Assign Macro
Chọn Macro So_Sanh_Ngay để gán vào nút lệnh
Bây giờ chúng ta click vào nút lệnh và xem kết quả nhé: