Vilas biết rằng anh ta có thể bảo vệ một trang tính để người dùng không thể xóa các ô. Tuy nhiên, anh ta cần ngăn chặn việc xóa các ô mà không sử dụng tính năng bảo vệ trang tính. (Vilas không nói về việc xóa nội dung ô mà là việc xóa thực tế các ô để các ô xung quanh phải di chuyển sang trái hoặc di chuyển lên trên.) Anh ấy tự hỏi liệu có cách nào để ngăn người dùng xóa ô mà không bảo vệ trang tính.

Không có cách nào trực tiếp để thực hiện việc này trong Excel. Sẽ thật tuyệt nếu Excel cung cấp một cách để tạo một trình xử lý sự kiện được gọi bất cứ khi nào một ô bị xóa, nhưng nó không. (Sự kiện Worksheet_Change dường như được kích hoạt bất cứ khi nào nội dung của một ô được thay đổi, nhưng không phải khi một ô bị xóa hoàn toàn.) Do đó, việc sử dụng macro để bảo vệ các ô của bạn không bị xóa không phải là cách tốt nhất.

Giải pháp tốt nhất mà chúng tôi có thể tìm thấy liên quan đến việc tận dụng lợi thế của một vấn đề trong cách Excel xử lý công thức mảng. Để làm ví dụ, hãy giả sử rằng bạn có dữ liệu trong phạm vi A1: L37 và bạn không muốn bất kỳ ô nào trong phạm vi này bị xóa. Làm theo các bước chung sau:

  1. Chọn phạm vi ô ngay bên phải khối mà bạn muốn bảo vệ. Trong trường hợp này, hãy chọn các ô M1: M37.

  2. Gõ = “” và nhấn Shift + Ctrl + Enter. Bây giờ bạn đã tạo một công thức mảng không làm gì có toàn bộ phạm vi của M1: M37.

  3. Chọn phạm vi ô ngay bên dưới khối ô bạn muốn bảo vệ. Trong trường hợp này, hãy chọn các ô A38: L38.

  4. Gõ = “” và nhấn Shift + Ctrl + Enter. Bây giờ bạn đã tạo một công thức mảng không làm gì có toàn bộ phạm vi A38: L38.

Tại thời điểm này, bạn không thể xóa bất kỳ ô nào trong khối dữ liệu (A1: L37), cũng như không thể xóa bất kỳ hàng nào từ 1 đến 37 hoặc bất kỳ cột nào từ A đến L.

Bất cứ khi nào bạn thử, Excel sẽ hiển thị một thông báo cho biết “Bạn không thể thay đổi một phần của mảng.” Cách duy nhất để xóa các ô, hàng hoặc cột trong khối dữ liệu là trước tiên hãy loại bỏ các công thức mảng sẽ bị ảnh hưởng. Nói cách khác, trước tiên bạn cần xóa cột M hoặc hàng 38.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (10255) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: