Chỉ với một vài dòng mã, chúng ta có thể dễ dàng lặp qua các điều khiển trên Biểu mẫu người dùng VBA Excel. Userform mà chúng ta sẽ tạo ra trông như sau:

Loop through Controls in Excel VBA

Để tạo Biểu mẫu người dùng này, hãy thực hiện các bước sau.

  1. Mở Trình soạn thảo Visual Basic. Nếu Project Explorer không hiển thị, hãy bấm View, Project Explorer.

  2. Nhấp vào Chèn, Biểu mẫu người dùng. Nếu Hộp công cụ không tự động xuất hiện, hãy bấm Xem, Hộp công cụ. Màn hình của bạn sẽ được thiết lập như bên dưới.

Userform Screen Setup in Excel VBA

  1. Thêm nhãn, các hộp kiểm (đầu tiên ở trên cùng, thứ hai ở dưới nhãn đầu tiên, v.v.) và nút lệnh. Khi điều này đã được hoàn thành, kết quả sẽ phù hợp với hình ảnh của Biểu mẫu người dùng được hiển thị trước đó. Ví dụ: tạo điều khiển hộp kiểm bằng cách nhấp vào CheckBox từ Hộp công cụ. Tiếp theo, bạn có thể kéo một hộp kiểm trên Biểu mẫu người dùng.

  2. Bạn có thể thay đổi tên và chú thích của các điều khiển. Tên được sử dụng trong mã VBA Excel. Phụ đề là những thứ xuất hiện trên màn hình của bạn. Bạn nên thay đổi tên của các điều khiển, nhưng không cần thiết ở đây vì chúng ta chỉ có một số điều khiển trong ví dụ này. Để thay đổi chú thích của Biểu mẫu người dùng, nhãn, hộp kiểm và nút lệnh, hãy nhấp vào Chế độ xem, Cửa sổ thuộc tính và nhấp vào từng điều khiển.

  3. Để hiển thị Biểu mẫu người dùng, hãy đặt một nút lệnh trên trang tính của bạn và thêm dòng mã sau:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Bây giờ chúng tôi đã tạo phần đầu tiên của Biểu mẫu người dùng. Mặc dù nó trông đã gọn gàng rồi nhưng sẽ không có gì xảy ra khi chúng ta nhấp vào nút Clear.

  1. Mở Trình soạn thảo Visual Basic.

  2. Trong Project Explorer, nhấp đúp vào UserForm1.

  3. Nhấp đúp vào nút Clear.

  4. Thêm các dòng mã sau:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls

If TypeName(contr) = "CheckBox" Then

contr.Value = False

End If

Next

End Sub

Giải thích: Excel VBA lặp lại tất cả các điều khiển trên Biểu mẫu người dùng. Hàm TypeName được sử dụng để lọc ra các điều khiển hộp kiểm. Nếu một hộp kiểm kiểm soát, Excel VBA bỏ chọn hộp kiểm. contr được chọn ngẫu nhiên ở đây, bạn có thể sử dụng bất kỳ tên nào. Hãy nhớ tham chiếu đến tên này trong phần còn lại của mã của bạn.

Kết quả khi bạn bấm vào nút Xóa:

Loop through Controls Result