Barry có thể khóa một trang tính để chỉ những người được anh ta cấp mật khẩu mới có thể chỉnh sửa nó. Nếu người đó nhập mật khẩu, thực hiện các chỉnh sửa, rồi lưu sổ làm việc có chứa trang tính, thì trang tính đó sẽ không được bảo vệ. Barry tự hỏi liệu có cách nào mà khi lưu trang tính, Excel có thể nhắc người dùng một lần nữa bảo vệ trang tính bằng cùng một mật khẩu được sử dụng ban đầu hay không.

Có một số cách bạn có thể thực hiện để giải quyết vấn đề này. Nếu bạn đã gán mật khẩu cho một trang tính, thì bạn chỉ cần đảm bảo rằng cùng một mật khẩu được sử dụng để bảo vệ lại trang tính khi sổ làm việc được lưu. Điều này có thể dễ dàng thực hiện bằng cách sử dụng macro có thể được gắn với sự kiện BeforeSave. Macro này nên được thêm vào đối tượng ThisWorkbook:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Sheets("ABC").Protect ("XYZ")

End Sub

Ví dụ này giả định rằng trang tính bạn muốn bảo vệ có tên là ABC và mật khẩu được sử dụng để bảo vệ trang tính là XYZ. Bạn sẽ muốn thay đổi các giá trị này để phản ánh trang tính và mật khẩu thực của mình.

Lưu ý rằng macro này tự động bảo vệ lại trang tính bất cứ khi nào sổ làm việc được lưu. Do đó, nếu người dùng có một phiên làm việc dài với trang tính và lưu sổ làm việc nhiều lần trong phiên đó, thì họ sẽ cần phải bỏ bảo vệ trang tính khá thường xuyên. Nếu muốn, bạn có thể tạo một macro hỏi xem trang tính có nên được bảo vệ lại hay không:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If MsgBox("Reprotect Sheet ABC?", vbYesNoCancel) = vbYes Then         Sheets("ABC").Protect ("XYZ")

End If End Sub

Tất nhiên, cách tiếp cận này có nghĩa là có thể một trang tính sẽ không được bảo vệ nữa, nếu người dùng chọn không bảo vệ lại nó.

Một cách tiếp cận khác hoàn toàn không liên quan đến việc sử dụng macro mà sử dụng một cách khác để bảo vệ bạn. Trong bảo vệ trang tính truyền thống, bạn định dạng các ô riêng lẻ là đã mở khóa, sau đó bạn áp dụng bảo vệ cho trang tính để không thể thay đổi bất kỳ ô nào bị khóa.

Nếu bạn không đánh dấu bất kỳ ô nào là đã mở khóa (có vẻ như đó là những gì Barry đang làm), thì không có gì trong trang tính có thể được thay đổi nếu không có mật khẩu.

Bắt đầu với Excel 2002, bạn thực sự có thể bảo vệ các phạm vi ô riêng lẻ trong trang tính. Làm theo các bước sau:

  1. Chọn Bảo vệ từ menu Công cụ, sau đó chọn Cho phép Người dùng Chỉnh sửa Phạm vi. Excel sẽ hiển thị hộp thoại Cho phép Người dùng Chỉnh sửa Dải ô.

(Xem Hình 1.)

  1. Nhấp vào nút Mới. Excel sẽ hiển thị hộp thoại Phạm vi Mới. (Xem Hình 2.)

  2. Trong hộp Tiêu đề, nhập tên bạn muốn sử dụng cho phạm vi này.

  3. Trong hộp Tham chiếu đến Ô, hãy nhập phạm vi bạn muốn người dùng có thể chỉnh sửa. (Nếu có nhiều dải ô mà bạn muốn sử dụng cùng một mật khẩu này, bạn có thể phân tách các dải ô đó bằng dấu phẩy.)

  4. Trong hộp Mật khẩu Phạm vi, nhập mật khẩu bạn muốn cung cấp cho người dùng của mình.

  5. Nhấp vào OK. Bạn lại được yêu cầu nhập mật khẩu.

  6. Nhập mật khẩu bạn đã sử dụng ở bước 5 lần thứ hai. Phạm vi hiện xuất hiện trong hộp thoại Cho phép người dùng chỉnh sửa phạm vi.

  7. Bấm OK để đóng hộp thoại Cho phép Người dùng Chỉnh sửa Dãy.

  8. Bảo vệ trang tính của bạn như bình thường.

Chỉ có một điều bạn cần nhớ khi bảo vệ trang tính của mình (bước 9). Vì bạn chưa mở khóa bất kỳ ô nào, nên tất cả các ô trong trang tính sẽ được bảo vệ. Bạn cần đảm bảo rằng biện pháp bảo vệ bạn áp dụng cho phép chọn các ô bị khóa. Nếu sau khi trang tính được bảo vệ, người dùng cố gắng chỉnh sửa một ô nằm trong phạm vi bạn đã chỉ định ở bước 4, họ sẽ được yêu cầu nhập mật khẩu bạn đã chỉ định ở bước 5. Khi họ cung cấp, họ có thể thực hiện chỉnh sửa cho bất kỳ ô nào trong phạm vi.

Điều thú vị về cách tiếp cận này là tính năng bảo vệ trang tính không bị xóa — trang tính vẫn được bảo vệ vì người dùng chưa bao giờ loại bỏ bảo vệ đó. Do đó, người dùng không bao giờ cần biết mật khẩu cho toàn bộ trang tính. Khi người dùng đóng và mở lại sổ làm việc, trang tính vẫn được bảo vệ khi bạn cần. Thêm vào đó, bạn không có nhược điểm không thể tránh khỏi của macro — người dùng có thể tắt chúng khi họ mở sổ làm việc.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

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

Mẹo này (11972) á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: