Khi thực hiện việc quản lý dữ liệu bằng VBA trong Excel, ngoài yêu cầu Thêm mới, cập nhật nội dung của dữ liệu thì chúng ta còn cần đến một yêu cầu: Xóa dữ liệu.
Tuy nhiên việc xóa dữ liệu phải hết sức thận trọng để tránh việc lỡ tay xóa nhầm nội dung, hoặc muốn thực hiện lệnh khác mà lỡ tay bấm phải lệnh xóa. Vì vậy chúng ta thường phải có thêm bước xác nhận thông tin trước khi cho phép thực hiện lệnh xóa dữ liệu. Đây là một biện pháp cần thiết và rất quan trọng khi làm việc với dữ liệu trong Excel, đặc biệt là khi quản lý những dữ liệu quan trọng.
Sau đây chúng ta cùng tìm hiểu kỹ thuật này bằng 2 cách: sử dụng MessengerBox và sử dụng UserForm
Xem nhanh
Tạo 1 msgbox bao gồm lựa chọn Yes/No như sau:
msgbox(Nội dung của thông báo , vbOKCancel + vbInformation + vbDefaultButton2, Tiêu đề của msgbox)
Các đối tượng:
Ngoài ra để thực hiện lệnh xóa chúng ta còn cần phải viết riêng lệnh xóa để giúp cho việc trình bày câu lệnh VBA được rõ ràng hơn.
Dưới đây là 2 câu lệnh được viết mẫu để các bạn tham khảo cách viết:
Ưu điểm
Nhược điểm
Thay vì gọi là 1 msgbox thì chúng ta có thể gọi ra 1 UserForm.
Ưu điểm của UserForm là chúng ta có thể thiết lập định dạng, trang trí cho UserForm đẹp hơn so với Msgbox, và còn có thể viết trực tiếp tiếng việt trong Label của UserForm. Tuy nhiên việc định dạng, trang trí và viết lệnh trong UserForm phức tạp hơn so với msgbox, do đó tùy từng tính chất công việc thì chúng ta có thể lựa chọn cách sử dụng msgbox hay UserForm cho phù hợp.
Cách làm như sau:
Bước 1: tạo mới 1 UserForm bằng cách chọn Insert / UserForm trong cửa sổ Properties của VBA
Bước 2: Trong UserForm chúng ta tạo các Label và CommandButton như sau:
Tạo 3 Label, trong đó Label2 sẽ dùng để lấy giá trị số dòng được chọn khi thực hiện gọi lệnh xóa
Tạo 2 CommandButton, thực hiện 2 lệnh riêng biệt: Ok / Cancel. Tùy vào mỗi nút lệnh chúng ta sẽ gán Macro câu lệnh tương ứng.
Bước 3: Xây dựng các Macro:
Bước 4: Gán nút lệnh mở UserForm cho nút Xóa
Việc xóa dữ liệu là một công việc thường xuyên gặp khi làm việc với VBA, do đó kỹ thuật này cần nắm vững để có thể xử lý cho tốt.
Msgbox là một đối tượng khá hữu ích khi xử lý nội dung này, đặc biệt hiệu quả khi chúng ta sử dụng tiếng anh cho nội dung thông báo (tránh được lỗi hiển thị tiếng việt)
UserForm sẽ hữu ích khi thao tác xóa phức tạp, có nhiều lựa chọn xóa khác nhau vì có thể gắn với nhiều CommandButton, còn msgbox thì khá hạn chế, chỉ áp dụng khi các quy ước đã rõ ràng.
Chúc các bạn học tốt cùng Học Excel Online
Tải về file mẫu tại địa chỉ: http://bit.ly/2BoZ6nl