Cách dùng hàm VLOOKUP VBA và vòng lặp FOR EACH trong VBA Excel

Nội dung được viết bởi Thanh Hằng

Chắc hẳn những bạn hay sử dụng công cụ Excel, cụ thể hơn là hàm VLOOKUP sẽ có không ít lần cần sử dụng đến hàm này trong VBA Excel. Trong bài viết này, Gitiho sẽ hướng dẫn chi tiết cách dùng hàm VLOOKUP VBA và ngoài ra, công cụ vòng lặp trong Excel - FOR EACH trong VBA hữu dụng trong việc phân loại, thực hiện nhiệm vụ với các nhóm đối tượng riêng biệt. Cùng tìm hiểu nhé!

Hàm VLOOKUP VBA Excel

Nếu đã làm quen với VBA, chắc hẳn đôi khi bạn phải sử dụng hàm VLOOKUP VBA (VLOOKUP phiên bản VBA).

Còn nếu chưa biết VBA là gì, hãy đọc bài viết phía dưới nhé.

Hiện nay, có 2 phiên bản hàm VLOOKUP VBA chính là:

  1. Application.VLOOKUP
  2. Application.WorksheetFunction.VLOOKUP

Sự khác nhau giữa 2 hàm này là gì? Cùng tìm câu trả lời ở minh minh họa dưới đây:

Cách dùng hàm VLOOKUP VBA và vòng lặp FOR EACH trong VBA Excel

Đó chính là: Cách xử lý lỗi khi không tìm thấy dữ liệu. Và, hàm Application.VLOOKUP có cách phát hiện và xử lý lỗi ngắn gọn và dễ dàng hơn.

Xem thêm: Tìm hiểu về VBA và các ứng dụng VBA trong công việc

Vòng lặp FOR EACH VBA Excel

Cấu trúc vòng lặp FOR EACH VBA

Vòng lặp FOR EACH thường sử dụng 2 biến dưới đây:

  • Biến tập hợp đối tượng (bien_TapHop)
  • Biến chỉ mỗi đối tượng trong tập hợp (bien_DoiTuong)

Cấu trúc vòng lặp như sau:

For Each bien_DoiTuong in bien_TapHop [Nội dung nhóm lệnh thực hiện trên từng đối tượng] Next bien_DoiTuong

Cách viết vòng lặp trong Excel

Dưới đây là bảng danh sách nhân viên và mức thưởng của bộ phận Kinh doanh. Hãy gắn mức thưởng này vào đúng nhân viên của phòng ''Kinh doanh''.

Cách dùng hàm VLOOKUP VBA và vòng lặp FOR EACH trong VBA Excel

1. Yêu cầu

Gắn mức thưởng 500 vào tên nhân viên ở bộ phận ''Kinh doanh''.

2. Đối tượng

  • Vùng B2:B8 chứa thông tin bộ phận của từng nhân viên (bien_TapHop)
  • Mỗi ô trong vùng B2:B8 là đối tượng cần xét (bien_DoiTuong)
  • Giá trị đối tượng cần so sánh: ô E2 có nội dung là “Kinh doanh”
  • Kết quả nếu mệnh đề thỏa mãn là ô F2 có giá trị là 500
  • Kết quả sẽ được điền tương ứng vào vùng C2:C8, tương ứng theo dòng đối tượng được xét

3. Mã Code cần điền:

Sub Thuong_BP_KinhDoanh() Dim bien_BoPhan as Range Set bien_BoPhan = Range("B2:B8") Dim bien_DoiTuong as Range For Each bien_DoiTuong in bien_BoPhan If bien_DoiTuong.Value = Range("E2").Value Then     bien_DoiTuong.Offset(0, 1).Value = Range("F2").Value End If Next bien_DoiTuong End Sub

Quy trình thực hiện viết vòng lặp trong Excel trên như sau:

  1. Bắt đầu câu lệnh với cú pháp khai báo 2 biến là bien_BoPhanbien_DoiTuong
  2. Thiết lập phạm vi cho biến bộ phận là vùng B2:B8
  3. Thực hiện vòng lặp For Each với từng đối tượng trong Bộ phận
  4. Dùng cấu trúc IF để so sánh giá trị của biến Đối tượng với giá trị tại ô E2
  5. Dùng phương thức OFFSET để dịch chuyển sang 1 cột về bên phải so với biến đối tượng. Đây là vị trí lấy kết quả thỏa mãn điều kiện

Sau khi bạn hiểu rõ các bước trên, hãy nhập câu lệnh vào cửa sổ VBA Excel và xem kết quả hiển thị.

Nếu bạn muốn học VBA thêm để tự động hóa quy trình và nâng cao hiệu suất công việc, tham khảo ngay các khóa học sau tại Gitiho:

Kết luận

Hy vọng qua bài viết trên, bạn đọc có thể nắm được cách dùng hàm VLOOKUP VBAvòng lặp trong VBA Excel - FOR EACH. Hy vọng bạn sẽ thực hiện thành công cho công việc của mình và đừng quên theo dõi chúng mình để xem thêm các bài viết bổ ích khác nhé!

Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu chỉ dùng Excel, bạn sẽ thường xuyên phải OT đến mỗi kỳ làm báo cáo, stress vì sai dữ liệu do nhập thủ công, hay gặp vấn đề các hàm load chậm do dữ liệu quá nặng,...

Có lẽ bạn đã từng nghe ở đâu đó về công cụ lập trình VBA trên Excel, giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,...

Nhưng bạn không dám nghĩ một ngày nào đó mình sẽ dùng VBA bởi vì mình không biết lập trình, sửa code và gỡ lỗi mã. Tin mình đi, bạn hoàn toàn có thể thành thạo công cụ này ngay cả khi không giỏi Excel, không biết lập trình với khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho.

Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập khiến mọi thao tác thủ công trên Excel gần như được loại bỏ hoàn toàn. 

Hãy nhấn vào Học thử hoặc Đăng ký ngay để cảm nhận sự “vi diệu” mà VBA mang lại cho công việc của bạn nhé!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông