/ / Cách tạo biểu mẫu nhập dữ liệu tự động trong Excel VBA

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.

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.

Có liên quan: Các trang web và blog để tìm hiểu các mẹo và thủ thuật Excel

Thêm hai trang tính vào sổ làm việc này, với các tên sau:

  1. Sheet1: Nhà
  2. Sheet2: Cơ sở dữ liệu sinh viên

bảng tính Excel

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.


Sổ làm việc Excel

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à 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.


Trình soạn thảo VBA trong Excel

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.


Biểu mẫu người dùng trong Excel VBA

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 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

Liên quan: 4 sai lầm cần tránh khi lập trình macro Excel với VBA

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 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


Biểu mẫu người dùng trong Excel VBA

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ọcThờ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 = False

End 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.


Macbook có nhật ký bên cạnh
Cách hợp nhất nhiều trang tính Excel bằng Macro VBA

Việc hợp nhất dữ liệu từ nhiều hơn một trang tính Excel trong cùng một sổ làm việc là một điều thực sự phức tạp … cho đến khi bạn sử dụng macro VBA.

Đọc tiếp


Thông tin về các Tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *