Chào các anh em trong diễn đàn,
Dạo gần đây mình có mày mò về VBA và gặp một vấn đề khá hay ho: làm sao để tự động tạo UserForm với các Control (như ComboBox, ListBox) được bind dữ liệu từ một mảng (Array) mà không cần phải khai báo từng Control một cách thủ công. Việc này rất hữu ích khi chúng ta có nhiều danh sách dữ liệu cần hiển thị và muốn tiết kiệm thời gian code.
Mình đã thử nghiệm và có một cách làm như sau:
- Định nghĩa một cấu trúc dữ liệu để lưu trữ thông tin về các Control và nguồn dữ liệu của chúng. Ví dụ, một mảng các cặp tên Control và tên Sheet chứa dữ liệu.
- Viết một Sub/Function để duyệt qua cấu trúc dữ liệu này.
- Với mỗi cặp dữ liệu, tạo một Control tương ứng trên UserForm (ví dụ:
Me.Controls.Add(