VBA - Biểu mẫu người dùng
A User Formlà một hộp thoại được tạo tùy chỉnh giúp cho việc nhập dữ liệu của người dùng dễ kiểm soát hơn và dễ sử dụng hơn cho người dùng. Trong chương này, bạn sẽ học cách thiết kế một biểu mẫu đơn giản và thêm dữ liệu vào excel.
Step 1- Điều hướng đến Cửa sổ VBA bằng cách nhấn Alt + F11 và Điều hướng đến Menu "Chèn" và chọn "Biểu mẫu người dùng". Sau khi chọn, biểu mẫu người dùng được hiển thị như trong ảnh chụp màn hình sau.
Step 2 - Thiết kế các biểu mẫu bằng cách sử dụng các điều khiển cho trước.
Step 3- Sau khi thêm mỗi điều khiển, các điều khiển phải được đặt tên. Chú thích tương ứng với những gì xuất hiện trên biểu mẫu và tên tương ứng với tên logic sẽ xuất hiện khi bạn viết mã VBA cho phần tử đó.
Step 4 - Sau đây là tên của từng điều khiển được thêm vào.
Điều khiển | Tên lôgic | Chú thích |
---|---|---|
Từ | frmempform | Mẫu nhân viên |
Hộp nhãn ID nhân viên | trống rỗng | Mã hiệu công nhân |
Hộp nhãn đầu tiên | tên đầu tiên | Tên đầu tiên |
Họ tên Hộp nhãn | họ | Họ |
Hộp nhãn dob | dob | Ngày sinh |
Hộp nhãn mailid | tài khoản mail | ID email |
Hộp Nhãn Hộ chiếu | Người nắm hộ chiếu | Người nắm hộ chiếu |
Hộp văn bản ID trống | txtempid | KHÔNG Áp dụng |
Hộp văn bản tên | txtfirstname | KHÔNG Áp dụng |
Hộp văn bản họ | txtlastname | KHÔNG Áp dụng |
Hộp văn bản ID email | txtemailid | KHÔNG Áp dụng |
Hộp kết hợp ngày | cmbdate | KHÔNG Áp dụng |
Hộp kết hợp tháng | cmbmonth | KHÔNG Áp dụng |
Hộp kết hợp năm | cmbyear | KHÔNG Áp dụng |
Có nút radio | radioyes | Đúng |
Không có nút radio | radiono | Không |
Nút gửi | btnsubmit | Gửi đi |
Nút hủy | btncancel | Huỷ bỏ |
Step 5 - Thêm mã cho sự kiện tải biểu mẫu bằng cách nhấp chuột phải vào biểu mẫu và chọn 'Mã Xem'.
Step 6 - Chọn 'Userform' từ các đối tượng thả xuống và chọn phương thức 'Initialize' như thể hiện trong ảnh chụp màn hình sau.
Step 7 - Khi Tải biểu mẫu, hãy đảm bảo rằng các hộp văn bản được xóa, các hộp thả xuống được lấp đầy và các nút Radio được đặt lại.
Private Sub UserForm_Initialize()
'Empty Emp ID Text box and Set the Cursor
txtempid.Value = ""
txtempid.SetFocus
'Empty all other text box fields
txtfirstname.Value = ""
txtlastname.Value = ""
txtemailid.Value = ""
'Clear All Date of Birth Related Fields
cmbdate.Clear
cmbmonth.Clear
cmbyear.Clear
'Fill Date Drop Down box - Takes 1 to 31
With cmbdate
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.AddItem "9"
.AddItem "10"
.AddItem "11"
.AddItem "12"
.AddItem "13"
.AddItem "14"
.AddItem "15"
.AddItem "16"
.AddItem "17"
.AddItem "18"
.AddItem "19"
.AddItem "20"
.AddItem "21"
.AddItem "22"
.AddItem "23"
.AddItem "24"
.AddItem "25"
.AddItem "26"
.AddItem "27"
.AddItem "28"
.AddItem "29"
.AddItem "30"
.AddItem "31"
End With
'Fill Month Drop Down box - Takes Jan to Dec
With cmbmonth
.AddItem "JAN"
.AddItem "FEB"
.AddItem "MAR"
.AddItem "APR"
.AddItem "MAY"
.AddItem "JUN"
.AddItem "JUL"
.AddItem "AUG"
.AddItem "SEP"
.AddItem "OCT"
.AddItem "NOV"
.AddItem "DEC"
End With
'Fill Year Drop Down box - Takes 1980 to 2014
With cmbyear
.AddItem "1980"
.AddItem "1981"
.AddItem "1982"
.AddItem "1983"
.AddItem "1984"
.AddItem "1985"
.AddItem "1986"
.AddItem "1987"
.AddItem "1988"
.AddItem "1989"
.AddItem "1990"
.AddItem "1991"
.AddItem "1992"
.AddItem "1993"
.AddItem "1994"
.AddItem "1995"
.AddItem "1996"
.AddItem "1997"
.AddItem "1998"
.AddItem "1999"
.AddItem "2000"
.AddItem "2001"
.AddItem "2002"
.AddItem "2003"
.AddItem "2004"
.AddItem "2005"
.AddItem "2006"
.AddItem "2007"
.AddItem "2008"
.AddItem "2009"
.AddItem "2010"
.AddItem "2011"
.AddItem "2012"
.AddItem "2013"
.AddItem "2014"
End With
'Reset Radio Button. Set it to False when form loads.
radioyes.Value = False
radiono.Value = False
End Sub
Step 8- Bây giờ thêm mã vào nút Gửi. Khi nhấp vào nút gửi, người dùng sẽ có thể thêm các giá trị vào trang tính.
Private Sub btnsubmit_Click()
Dim emptyRow As Long
'Make Sheet1 active
Sheet1.Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer information
Cells(emptyRow, 1).Value = txtempid.Value
Cells(emptyRow, 2).Value = txtfirstname.Value
Cells(emptyRow, 3).Value = txtlastname.Value
Cells(emptyRow, 4).Value = cmbdate.Value & "/" & cmbmonth.Value & "/" & cmbyear.Value
Cells(emptyRow, 5).Value = txtemailid.Value
If radioyes.Value = True Then
Cells(emptyRow, 6).Value = "Yes"
Else
Cells(emptyRow, 6).Value = "No"
End If
End Sub
Step 9 - Thêm phương thức đóng biểu mẫu khi người dùng nhấp vào nút Hủy.
Private Sub btncancel_Click()
Unload Me
End Sub
Step 10- Thực hiện biểu mẫu bằng cách nhấp vào nút "Chạy". Nhập các giá trị vào biểu mẫu và nhấp vào nút 'Gửi'. Tự động các giá trị sẽ chảy vào trang tính như được hiển thị trong ảnh chụp màn hình sau.