Cách tạo biểu mẫu nhập dữ liệu tự động trong Excel VBA
Visual Basic là một ngôn ngữ tuyệt vời để tự động hóa các tác vụ lặp đi lặp lại trong Excel. Hãy tưởng tượng đưa khả năng tự động hóa của bạn lên một tầm cao bằng cách tạo ra các biểu mẫu người dùng có chức năng cao trông cũng gọn gàng hơn cho người dùng cuối.
Biểu mẫu người dùng trong VBA hiển thị cho bạn một khung trống; bạn có thể thiết kế và sắp xếp các biểu mẫu để phù hợp với nhu cầu của mình tại bất kỳ thời điểm nào.
Trong hướng dẫn này, bạn sẽ học cách tạo biểu mẫu nhập dữ liệu dựa trên sinh viên để ghi lại thông tin liên quan trong các trang tính Excel được liên kết.
Mục Lục
Tạo biểu mẫu người dùng với Excel VBA
Mở sổ làm việc Excel mới và thực hiện một vài bước sơ bộ trước khi bạn bắt đầu tạo biểu mẫu nhập dữ liệu của mình.
Lưu sổ làm việc của bạn với tên mong muốn; đừng quên thay đổi loại tệp thành một Excel Macro-Enabled Workbook.
Thêm hai trang tính vào sổ làm việc này, với các tên sau:
- Sheet1: Nhà
- Sheet2: Cơ sở dữ liệu sinh viên
Hãy thay đổi những tên này theo yêu cầu của bạn.
bên trong Nhà trang tính, thêm một nút để điều khiển macro biểu mẫu người dùng. Đi đến Nhà phát triển và nhấp vào Khuy ao tùy chọn từ Chèn danh sách thả xuống. Đặt nút ở bất kỳ vị trí nào trên trang tính.
Khi bạn đã đặt xong nút, hãy đổi tên nó. Nhấp chuột phải vào nó và nhấp vào Mới mẻ để gán một macro mới để hiển thị biểu mẫu.
Nhập mã sau vào cửa sổ trình chỉnh sửa:
Sub Button1_Click()
UserForm.Show
End Sub
Một khi Nhà và Cơ sở dữ liệu sinh viên các trang tính đã sẵn sàng, đã đến lúc thiết kế biểu mẫu người dùng. Điều hướng đến Nhà phát triển và nhấp vào Ngôn ngữ lập trình để mở Trình chỉnh sửa. Ngoài ra, bạn có thể nhấn ALT + F11 để mở cửa sổ trình soạn thảo.
Bấm vào Chèn tab và chọn UserForm.
Một biểu mẫu người dùng trống đã sẵn sàng để sử dụng; một hộp công cụ đi kèm sẽ mở ra cùng với biểu mẫu, trong đó có tất cả các công cụ cần thiết để thiết kế bố cục.
Từ hộp công cụ, hãy chọn Khung Lựa chọn. Kéo nó vào biểu mẫu người dùng và thay đổi kích thước của nó.
bên trong (Tên) tùy chọn, bạn có thể thay đổi tên của khung. Để hiển thị tên trên giao diện người dùng, bạn có thể thay đổi tên trong Đầu đề cột.
Tiếp theo, chọn Nhãn mác từ hộp công cụ và chèn hai nhãn trong khung này. Đổi tên cái đầu tiên là Sô hiệu đăng ki và thứ hai là thẻ học sinh.
Logic đổi tên tương tự cũng được áp dụng; thay đổi tên thông qua Đầu đề tùy chọn trong Tính chất cửa sổ. Đảm bảo rằng bạn chọn nhãn tương ứng trước khi thay đổi tên của nó.
Tiếp theo, chèn hai hộp văn bản bên cạnh các hộp nhãn. Chúng sẽ được sử dụng để nắm bắt thông tin đầu vào của người dùng. Thay đổi tên của hai hộp văn bản thông qua (Tên) cột trong Tính chất cửa sổ. Tên như sau:
- Hộp văn bản1: txtApplicationNo
- Hộp văn bản2: txtStudentID
Thiết kế khung chi tiết học sinh
Chèn một khung dọc và thêm 10 nhãn và 10 hộp văn bản. Đổi tên từng cái theo cách sau:
- Nhãn3: Tên
- Nhãn4: Tuổi
- Nhãn5: Địa chỉ nhà
- Nhãn6: Điện thoại
- Nhãn7: Thành phố
- Nhãn8: Quốc gia
- Nhãn9: Ngày sinh
- Nhãn 10: Mã Bưu Chính
- Nhãn11: Quốc tịch
- Nhãn12: Giới tính
Chèn các hộp văn bản tương ứng bên cạnh các nhãn này; chèn hai (hoặc nhiều hơn) nút tùy chọn từ hộp công cụ biểu mẫu người dùng bên cạnh giới tính nhãn mác. Đổi tên chúng Nam giới và Giống cái (cùng với Tùy chỉnh), tương ứng.
Thiết kế khung chi tiết khóa học
Thêm một khung dọc khác và chèn sáu nhãn và sáu hộp văn bản tương ứng với mỗi nhãn. Đổi tên các nhãn như sau:
- Nhãn13: Tên khóa học
- Nhãn14: Mã khóa học
- Nhãn15: Ngày bắt đầu ghi danh
- Nhãn16: Ngày kết thúc đăng ký
- Nhãn17: Thời lượng khóa học
- Nhãn18: Phòng ban
Thiết kế khung chi tiết thanh toán
Chèn một khung mới; thêm nhãn mới và đổi tên thành “Bạn có muốn cập nhật Chi tiết thanh toán không?” Chèn hai các nút tùy chọn; đổi tên chúng Vâng và Không.
Tương tự, thêm một khung mới có chứa hai nhãn bổ sung và hai hộp tổ hợp. Đổi tên các nhãn như sau:
- Nhãn19: Thanh toán nhận được
- Nhãn20: Phương thức thanh toán
Thiết kế Ngăn Dẫn hướng
Trong khung cuối cùng, thêm ba nút từ hộp công cụ, sẽ chứa mã để thực thi các biểu mẫu.
Đổi tên các nút theo cách sau:
- Nút 1: Lưu chi tiết
- Nút 2: Hình thức rõ ràng
- Nút 3: Lối ra
Viết mã biểu mẫu tự động: Nút lưu chi tiết
Bấm đúp vào Lưu chi tiết khuy ao. Trong mô-đun tiếp theo, hãy chèn mã sau:
Private Sub CommandButton2_Click()‘declare the variables used throughout the codes
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Long
'Add validations to check if character values are being entered in numeric fields.
If VBA.IsNumeric(txtApplicationNo.Value) = False Then
MsgBox "Only numeric values are accepted in the Application Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtStudentID.Value) = False Then
MsgBox "Only numeric values are accepted in the Student ID", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtAge.Value) = False Then
MsgBox "Only numeric values are accepted in Age", vbCritical
Exit Sub
End If
If VBA.IsNumeric(txtPhone.Value) = False Then
MsgBox "Only numeric values are accepted in Phone Number", vbCritical
Exit Sub
End If
If VBA.IsNumeric(Me.txtCourseID.Value) = False Then
MsgBox "Only numeric values are accepted in Course ID", vbCritical
Exit Sub
End If
'link the text box fields with the underlying sheets to create a rolling database
Set sht = ThisWorkbook.Sheets("Student Database")
'calculate last populated row in both sheets
lastrow = sht.Range("a" & Rows.Count).End(xlUp).Row + 1
'paste the values of each textbox into their respective sheet cells
With sht
.Range("a" & lastrow).Value = txtApplicationNo.Value
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName.Value
.Range("d" & lastrow).Value = txtAge.Value
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Value = txtAddress.Value
.Range("h" & lastrow).Value = txtPhone.Value
.Range("i" & lastrow).Value = txtCity.Value
.Range("j" & lastrow).Value = txtCountry.Value
.Range("k" & lastrow).Value = txtZip.Value
.Range("l" & lastrow).Value = txtNationality.Value
.Range("m" & lastrow).Value = txtCourse.Value
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart.Value
.Range("p" & lastrow).Value = txtenrollmentend.Value
.Range("q" & lastrow).Value = txtcourseduration.Value
.Range("r" & lastrow).Value = txtDept.Value
End With
sht.Activate
'determine gender as per user's input
If optMale.Value = True Then sht.Range("g" & lastrow).Value = "Male"
If optFemale.Value = True Then sht.Range("g" & lastrow).Value = "Female"
'Display a message box, in case the user selects the Yes radio button
If optYes.Value = True Then
MsgBox "Please select the payment details below"
Else:
Exit Sub
End If
End Sub
Nếu bạn không chắc chắn về ý nghĩa của các phần hoặc bất kỳ mã nào, đừng lo lắng. Chúng tôi sẽ giải thích kỹ lưỡng trong phần tiếp theo.
Giải thích mã biểu mẫu tự động
Các hộp văn bản sẽ chứa hỗn hợp các giá trị văn bản và số, vì vậy điều cần thiết là hạn chế đầu vào của người dùng. Các Sô hiệu đăng ki, thẻ học sinh, Tuổi, Điện thoại, Mã khóa họcvà Thời lượng khóa học chỉ nên chứa số, trong khi phần còn lại sẽ chứa văn bản.
Sử dụng một NẾU câu lệnh, mã sẽ kích hoạt cửa sổ bật lên lỗi nếu người dùng nhập một ký tự hoặc giá trị văn bản vào bất kỳ trường số nào.
Vì đã có xác thực lỗi, bạn cần liên kết các hộp văn bản với các ô trang tính.
Các hàng cuối cùng các biến sẽ tính toán hàng được điền cuối cùng và lưu trữ các giá trị trong đó để sử dụng động.
Cuối cùng, các giá trị được dán từ các hộp văn bản vào trang tính Excel được liên kết.
Xóa biểu mẫu và mã nút thoát
bên trong thông thoáng , bạn cần viết mã để xóa các giá trị hiện có khỏi biểu mẫu người dùng. Điều này có thể được thực hiện theo cách sau:
With Me
.txtApplicationNo.Value = ""
.txtStudentID.Value = ""
..txtName.Value = ""
.txtAge.Value = ""
.txtAddress.Value = ""
.txtPhone.Value = ""
.txtCity.Value = ""
.txtCountry.Value = ""
.txtDOB.Value = ""
.txtZip.Value = ""
.txtNationality.Value = ""
.txtCourse.Value = ""
.txtCourseID.Value = ""
.txtenrollmentstart.Value = ""
.txtenrollmentend.Value = ""
.txtcourseduration.Value = ""
.txtDept.Value = ""
.cmbPaymentMode.Value = ""
.cmbPayment.Value = ""
.optFemale.Value = False
.optMale.Value = False
.optYes.Value = False
.optNo.Value = FalseEnd With
bên trong lối ra nhập mã sau để đóng biểu mẫu người dùng.
Private Sub CommandButton5_Click()
Unload Me
End Sub
Bước cuối cùng, bạn cần nhập một vài đoạn mã cuối cùng để tạo giá trị thả xuống cho các hộp kết hợp (trong khung thanh toán).
Private Sub UserForm_Activate()With cmbPayment
.Clear
.AddItem ""
.AddItem "Yes"
.AddItem "No"
End With
With cmbPaymentMode
.Clear
.AddItem ""
.AddItem "Cash"
.AddItem "Card"
.AddItem "Check"
End With
End Sub
Tự động hóa VBA giúp công việc trở nên dễ dàng hơn
VBA là một ngôn ngữ đa nghĩa phục vụ nhiều mục đích. Biểu mẫu người dùng chỉ là một khía cạnh trong VBA — có nhiều cách sử dụng khác như hợp nhất sổ làm việc và trang tính, hợp nhất nhiều trang tính Excel và sử dụng tự động hóa tiện dụng khác.
Bất kể mục tiêu tự động hóa là gì, VBA vẫn hoàn thành nhiệm vụ. Nếu bạn tiếp tục học hỏi và thực hành, thì không có khía cạnh nào trong quy trình làm việc của bạn mà bạn không thể cải thiện.
Đọc tiếp
Thông tin về các Tác giả