Dạng người dùng và phạm vi VBA trong Excel
Bạn có thể sử dụng điều khiển RefEdit trong Excel VBA để lấy một phạm vi từ người dùng. Userform mà chúng ta sẽ tạo ra các màu có giá trị nhỏ nhất của phạm vi được lưu trữ trong điều khiển RefEdit.
Để tạo Biểu mẫu người dùng này, hãy thực hiện các bước sau.
-
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.
-
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.
-
Thêm nhãn, điều khiển RefEdit và các 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 RefEdit bằng cách nhấp vào RefEdit từ Hộp công cụ. Tiếp theo, bạn có thể kéo điều khiển RefEdit trên Biểu mẫu người dùng.
Lưu ý: Nếu hộp công cụ của bạn không có điều khiển RefEdit, hãy đặt tham chiếu đến điều khiển RefEdit. Nhấp vào Công cụ, Tham chiếu và chọn Kiểm soát Chỉnh sửa Tham chiếu.
-
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 và các nút lệnh, hãy bấm Chế độ xem, Cửa sổ Thuộc tính và bấm vào từng điều khiển.
-
Để 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 ta sẽ tạo Sub UserForm_Initialize. Khi bạn sử dụng phương thức Hiển thị cho Biểu mẫu người dùng, phụ này sẽ tự động được thực thi.
-
Mở Trình soạn thảo Visual Basic.
-
Trong Project Explorer, nhấp chuột phải vào UserForm1 và sau đó nhấp vào View Code.
-
Chọn Userform từ danh sách thả xuống bên trái. Chọn Khởi tạo từ danh sách thả xuống bên phải.
-
Thêm các dòng mã sau:
Private Sub UserForm_Initialize() Sheet1.Cells.Font.Color = vbBlack UserForm1.RefEdit1.Text = Selection.Address End Sub
Giải thích: dòng mã đầu tiên thay đổi màu chữ của tất cả các ô trên sheet1 thành màu đen. Dòng mã thứ hai lấy địa chỉ của lựa chọn hiện tại và hiển thị nó trong điều khiển RefEdit.
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 các nút lệnh trên Userform.
-
Trong Project Explorer, nhấp đúp vào UserForm1.
-
Nhấp đúp vào nút Go.
-
Thêm các dòng mã sau:
Private Sub CommandButton1_Click() Dim addr As String, rng, cell As Range, minimum As Double addr = RefEdit1.Value Set rng = Range(addr) minimum = WorksheetFunction.Min(rng) For Each cell In rng If cell.Value = minimum Then cell.Font.Color = vbRed Next cell End Sub
Giải thích: đầu tiên, chúng tôi lấy địa chỉ từ điều khiển RefEdit và lưu trữ nó vào trình bổ sung biến chuỗi. Tiếp theo, chúng tôi đặt rng thành phạm vi được chỉ định trong điều khiển RefEdit. Tiếp theo, chúng tôi sử dụng hàm trang tính Min để tìm giá trị nhỏ nhất trong phạm vi. Cuối cùng, chúng tôi tô màu (các) giá trị nhỏ nhất bằng cách sử dụng một vòng lặp.
-
Nhấp đúp vào nút Hủy.
-
Thêm dòng mã sau:
Private Sub CommandButton2_Click() Unload Me End Sub
Giải thích: dòng mã này đóng Biểu mẫu người dùng khi bạn nhấp vào nút Hủy.
-
Kiểm tra Userform.
Kết quả: