Hướng dẫn cách sử dụng vòng lặp For Each trong VBA Excel

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Trong lập trình VBA, vòng lặp là cấu trúc thường được sử dụng. Mục đích của vòng lặp là để thực hiện các công việc / thao tác / quy trình lặp đi lặp lại một cách tự động. Trong bài viết này chúng ta cùng tìm hiểu về cách sử dụng vòng lặp For Each trong VBA Excel nhé.

Đặc điểm vòng lặp For Each

Vòng lặp For Each là vòng lặp xét lần lượt từng đối tượng trong 1 tập hợp các đối tượng:

  • Mỗi ô trong 1 Range
  • Mỗi Sheet trong 1 Workbook
  • Mỗi Workbook trong 1 thư mục

Với mỗi 1 đối tượng được xét đến mà thỏa mãn 1 điều kiện nào đó thì sẽ thực hiện 1 nhóm lệnh, nhóm hành động theo ý muốn.

Các đối tượng trong tập hợp phải cùng 1 loại, có đặc điểm giống nhau.

Cấu trúc của vòng lặp For Each

Trong vòng lặp For Each thường sử dụng 2 biến:

  • 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:

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

Hướng dẫn cách viết vòng lặp For Each trong VBA

Trong bảng danh sách nhân viên, hãy xác định mức thưởng cho nhân viên biết: Nếu nhân viên ở bộ phận kinh doanh có mức thưởng là 500

Cách làm:

1. Mục tiêu:

Xét từng nhân viên có bộ phận là kinh doanh thì mức thưởng là 500

2. Các đố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. Viết thành câu lệnh:

  • Bắt đầu câu lệnh với cú pháp khai báo 2 biến là bien_BoPhan và bien_DoiTuong
  • Thiết lập phạm vi cho biến bộ phận là vùng B2:B8
  • Thực hiện vòng lặp For Each với từng đối tượng trong Bộ phận
  • 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
  • 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

Hãy viết câu lệnh đó vào cửa sổ viết code VBA và chạy thử xem kết quả nhé. Chúc các bạn áp dụng tốt kiến thức trên vào công việc.

Ngoài ra các bạn có thể xem một số bài viết về chủ đề tương tự:

Hướng dẫn sử dụng vòng lặp For.. Next trong VBA

Vòng lặp For trong VBA Excel chi tiết và ví dụ

Hướng dẫn cách viết cấu trúc IF THEN ELSE trong VBA Excel


Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •