
Tạo Form tự xóa với VBA và Phạm Vi Đặt Tên trong Excel đơn giản hóa nhiệm vụ nhập liệu và nâng cao năng suất. Nó tự động xóa các trường nhập liệu sau khi dữ liệu được gửi, làm cho nó lý tưởng cho các tình huống nhập liệu nơi bạn cần nhập nhiều bản ghi nhanh chóng.
Trong hướng dẫn này, chúng tôi sẽ chỉ cách tạo form tự làm sạch với VBA và phạm vi đặt tên.
Hãy tạo một form thông tin nhân viên đơn giản chấp nhận dữ liệu nhân viên, lưu dữ liệu vào sheet database, và tự động xóa form sau khi gửi.
Bước 1: Thiết Lập Cấu Trúc Worksheet
- Mở một workbook Excel mới.
- Tạo bố cục form của bạn.
- Đổi tên Sheet1 thành “Form”.
- Tạo bố cục sau trên sheet Form.
- Bên cạnh mỗi nhãn, cung cấp ô trống (B2, B3, B4, B5) để nhập dữ liệu.
Thiết Lập Sheet Database:
- Chèn một worksheet mới và đổi tên thành “Database”.
- Tạo tiêu đề ở hàng 1:
- Name
- Department
- Salary
- Start Date
- Entry Date
Bước 2: Tạo Phạm Vi Đặt Tên
Phạm vi đặt tên làm cho việc tham chiếu ô trong VBA dễ dàng và rõ ràng hơn. Chúng ta sẽ tạo phạm vi đặt tên cho tất cả các đầu vào form.
- Chọn ô B2.
- Trong Name Box (bên trái thanh công thức), gõ Name.
- Nhấn Enter.
- Lặp lại quy trình này cho từng ô:
- B3: Đặt tên Department.
- B4: Đặt tên Salary.
- B5: Đặt tên StartDate.
Xác Minh Phạm Vi Đặt Tên:
- Chuyển đến tab Formulas >> chọn Name Manager hoặc nhấn Ctrl+F3.
- Xác minh tất cả phạm vi đặt tên được tạo đúng cách.
- Chọn Close.
Bước 3: Tạo Nút Bấm Form
Thêm Nút Gửi:
- Chuyển đến sheet Form.
- Chuyển đến tab Developer >> chọn Insert >> từ Form Controls >> chọn Button.
- Vẽ nút trong ô.
- Khi được nhắc, đặt tên macro SubmitandClearForm.
- Nhấp OK.
- Nhấp chuột phải vào nút >> chọn Edit Text.
- Thay đổi thành Submit and Clear Form.
Thêm Nút Xóa:
- Chèn một nút khác.
- Đặt tên macro ClearForm.
- Thay đổi văn bản nút thành Clear Form.
Lưu ý: Nếu bạn không thấy tab Developer, hãy bật nó qua File → Options → Customize Ribbon → tích Developer.
Bước 4: Viết Mã VBA
- Chuyển đến tab Developer >> chọn Visual Basic.
- Từ menu, nhấp Insert >> chọn Module.
- Sao chép-dán mã VBA sau.
Mã VBA SubmitForm:
Sub SubmitandClearForm()
Dim ws As Worksheet
Dim dbSheet As Worksheet
Dim lastRow As Long
Dim formValid As Boolean
' Set worksheet references
Set ws = ThisWorkbook.Sheets("Form")
Set dbSheet = ThisWorkbook.Sheets("Database")
' Find the next empty row in database
lastRow = dbSheet.Cells(dbSheet.Rows.Count, 1).End(xlUp).Row + 1
' Copy data from form to database
dbSheet.Cells(lastRow, 1).Value = Range("Name").Value
dbSheet.Cells(lastRow, 2).Value = Range("Department").Value
dbSheet.Cells(lastRow, 3).Value = Range("Salary").Value
dbSheet.Cells(lastRow, 4).Value = Range("StartDate").Value
dbSheet.Cells(lastRow, 5).Value = Now() ' Entry timestamp
' Clear the form
ClearForm
' Provide feedback
MsgBox "Employee data submitted successfully!", vbInformation, "Success"
' Set focus back to name field
Range("Name").Select
End Sub
Giải Thích:
- Lấy đầu vào từ phạm vi đặt tên trên sheet Form.
- Thêm dữ liệu này vào hàng tiếp theo trong sheet Database, cùng với dấu thời gian.
- Gọi macro ClearForm để đặt lại các trường form.
- Hiển thị thông báo xác nhận và đặt con trỏ về trường Name.
Mã VBA ClearForm:
Sub ClearForm()
' Clear all form fields using named ranges
Range("Name").ClearContents
Range("Department").ClearContents
Range("Salary").ClearContents
Range("StartDate").ClearContents
' Set focus to first field
Range("Name").Select
End Sub
Giải Thích:
- Xóa nội dung của tất cả các trường form (Name, Department, Salary, StartDate) trên sheet Form.
- Đặt con trỏ quay lại trường Name để nhập liệu nhanh.
Bước 6: Kiểm Tra Form Tự Xóa
- Lưu workbook của bạn dưới dạng Excel Macro-Enabled Workbook (.xlsm).
- Nhập dữ liệu vào các trường form của bạn.
- Nhấp Submit and Clear Form.
- Các trường form tự động gửi dữ liệu đến sheet database. Tự động xóa dữ liệu form, và con trỏ sẽ quay lại trường đầu tiên, sẵn sàng cho nhập liệu mới.
- Dữ liệu đã gửi được lưu trữ trong sheet database.
- Ngoài ra, bạn có thể sử dụng nút Clear Form. Nó sẽ xóa dữ liệu form, dù đã gửi hay chưa.
- Trả con trỏ về trường đầu tiên.
Lợi Ích Của Việc Sử Dụng Form Tự Xóa
- Hiệu Quả: Tiết kiệm thời gian bằng cách loại bỏ việc xóa thủ công đầu vào.
- Độ Chính Xác: Giảm lỗi con người từ các tác vụ lặp lại.
- Tiện Lợi: Nâng cao trải nghiệm người dùng và tốc độ nhập liệu.
Kết Luận
Bằng cách làm theo các bước trên, bạn có thể tạo một form tự xóa hoàn toàn chức năng với VBA và phạm vi đặt tên. Bây giờ form Excel của bạn sẽ tự xóa sau mỗi lần nhập, cải thiện quy trình làm việc đáng kể. Việc sử dụng phạm vi đặt tên làm cho mã dễ bảo trì và dễ hiểu hơn, trong khi chức năng tự xóa đảm bảo quy trình nhập liệu dữ liệu hiệu quả.
Nhận Bài Tập Excel Nâng Cao Miễn Phí Có Giải Pháp!