Excel cung cấp khả năng bảo vệ cho trang tính của bạn, nghĩa là bạn có thể bảo vệ nội dung của các ô để chúng không thể bị thay đổi. Chính xác cách bạn sử dụng biện pháp bảo vệ này đã được thảo luận trong các vấn đề khác của ExcelTips.

Điều gì sẽ xảy ra nếu bạn muốn cho phép các ô được chỉnh sửa, nhưng bạn muốn chúng được bảo vệ ngay sau khi ai đó nhập thông tin vào ô? Ví dụ: bạn có các ô trong đó người dùng có thể nhập thông tin, nhưng khi đã nhập, bạn không muốn họ có khả năng thay đổi thông tin họ đã nhập.

Không có khả năng cố hữu nào trong Excel để bảo vệ thông tin đầu vào của bạn sau khi nhập, nhưng bạn có thể tạo khả năng này thông qua việc sử dụng macro. Macro sau đây là một ví dụ về cách bạn có thể làm điều này:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim MyRange As Range

Set MyRange = Intersect(Range("A1:D100"), Target)

If Not MyRange Is Nothing Then         Sheets("Sheet1").Unprotect password:="hello"

MyRange.Locked = True         Sheets("Sheet1").Protect password:="hello"

End If End Sub

Macro này giả định rằng trang tính đã được bảo vệ và tất cả các ô mà bạn muốn nhập có thể được mở khóa.

Những gì nó làm là kiểm tra xem đầu vào có được thực hiện trong phạm vi ô thích hợp hay không, trong trường hợp này là ở đâu đó trong phạm vi A1: D100. Nếu đúng như vậy, thì trang tính không được bảo vệ, ô chứa thông tin vừa được nhập sẽ bị khóa và trang tính lại được bảo vệ.

Nếu bạn đang sử dụng phương pháp này trong sổ làm việc của riêng mình, bạn sẽ cần phải sửa đổi phạm vi đầu vào tiềm năng và bạn sẽ muốn thay đổi mật khẩu được sử dụng để bỏ bảo vệ và bảo vệ trang tính.

_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 (2034) á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: