[Excel] Thủ thuật khóa và bảo vệ những ô có chứa công thức excel
Trên một bảng tính excel thường chúng ta sẽ phải dùng đến nhiều công thức, và khi chia sẻ bảng tính cho mọi người, có thể bạn không ai có thể can thiệp (xóa, sửa…) những vào những ô có chứa công thức.
Có thể bạn quan tâm
Cách dễ nhất là cũng phổ biến nhất là Protect (bảo vệ) bảng tính. Tuy nhiên, Protect bảng tính không chỉ ngăn không cho can thiệp vào các ô chứa công thức, mà nó không cho can thiệp vào tất cả, nghĩa là không ai có thể làm gì bảng tính của bạn. Đôi khi, bạn lại không muốn như vậy, bạn chỉ muốn bảo vệ các ô chứa công thức thôi, còn những ô chứa dữ liệu thì không. Chỉ còn cách là bạn khóa và bảo vệ những ô có chứa công thức thì người khác chỉ được thay đổi các ô có chứa dữ liệu, nhưng họ không được phép thay đổi các ô chứa công thức. Với thủ thuật này bạn cũng có thể bảo vệ các ô có chứa công thức mà không cần phải bảo vệ toàn bộ trang tính của bạn..
Có ba giải pháp để khóa và bảo vệ những ô có chứa công thức: Khóa những ô chứa công thức, sử dụng chức năng Data-validation cho các ô chứa công thức, và tự động bật tắt chức năng bảo vệ.
Khóa các ô chứa công thức
Theo mặc định, tất cả các ô trong bảng tính đều được khóa (locked), tuy nhiên, nó chẳng có tác dụng gì trừ phi bạn áp dụng lệnhProtectbảng tính. Đây là cách dễ nhất để áp dụng lệnhProtectcho bảng tính, nhưng chỉ những ô chứa công thức thì mới bị khóa, và được bảo vệ:
Chọn toàn bộ bảng tính, bằng cách nhấnCtrl+A, hoặc nhấn vào cái ô vuông nằm ở giao điểm của cột A và hàng 1. Rồi nhấn nút phải chuột và chọnFormat Cells, rồi trongtab Protection, bỏ đánh dấu ở tùy chọnLocked, rồi nhấnOK:
Mở khóa (Unlock) toàn bộ bảng tính bằng cách bỏ tùy chọnLocked
Sau đó, bạn chọn đại một ô nào đó, chọnHome➝Find & Select➝Go To Special[E2003:Edit|Go To… |Special]; hoặc nhấnCtrl+GhayF5rồi nhấn vào nútSpecial…. Hộp thoại sau đây sẽ mở ra:
Dùng hộp thoại Go To Special để chọn các ô có chứa công thức
Trong hộp thoại đó, bạn nhấn vào tùy chọnFormulas, và nếu cần thiết thì chọn hoặc không chọn thêm 4 ô nhỏ ở dưới (liệt kê các loại công thức, mặc định thì cả 4 ô này đều được chọn), và nhấnOK. Sau đó, bạn mở lại hộp thoạiFormat Cellsđã nói ở trên, nhưng lần này thì bạn đánh dấu vào tùy chọn Locked, và nếu bạn thích ẩn luôn công thức (không cho thấy) thì đánh dấu vào tùy chọnHidden, nhấnOK.
Việc cuối cùng làProtectbảng tính: ChọnHometrênRibbon, nhấn vàoFormattrong nhómCells, rồi nhấn vàoProtect Sheet…; hoặc chọnReviewtrênRibbon, rồi nhấn vàoProtect Sheet[E2003:Tools|Protection|Protect Worksheet]:
ChọnProtect SheettừHome
Chọn Protect SheettừReview
Trong hộp thoạiProtect Sheet, bỏ đánh dấu ở tùy chọnSelect locked cells, chỉ cho phépSelect unlocked cells(chọn những ô không khóa), và nhập vào mộtpassword, nếu cần thiết:
Bỏ tùy chọnSelect locked cellstrong hộp thoạiProtect Sheet
Vậy là xong. Từ bây giờ, những ô chứa công thức của bạn sẽ được bảo vệ, có thể không xem thấy được nếu bạn đã chọnHidden, bạn không lo những công thức này bị can thiệp nữa.
Sử dụng Data-validation
Sử dụngData-validation, chỉ là đơn giản không cho ghi đè vào những ô có chứa công thức, nghĩa là không cho sửa công thức. Tuy nhiên, phương pháp này chỉ phòng ngừa cho chính bạn, nghĩa là tránh việc táy máy sửa lại cái gì đó trong những ô chứa công thức, chứ thật ra, mặc dù đã được “Validation“, bạn vẫn có thể xóa công thức, hoặc dán vào những ô đó bất kỳ dữ liệu nào bạn thích… Nói chung nó không bảo vệ được gì nhiều. Nhưng cũng xin nói sơ qua về phương pháp này:
Để thực hiện, bạn hãy chọn những ô chứa ô công thức bằng chức năngGo To Specialsmà tôi đã nói ở trên. Rồi, với những ô chứa công thức đang được chọn, bạn gọiData Validationtừ menuDatatrênRibbon[E2003:Data|Validation]. Trong hộp thoại này, chọntab Settings, chọnCustomcho khungAllow, và nhập công thức này: =” ” vào khungFormula, rồi nhấn OK, như hình sau:
Sử dụngData Validationđể bảo vệ những ô chứa công thức
Kể từ đây, mỗi khi bạn nhập bất kỳ thứ gì vào trong những ô chứa công thức, hoặc bạn muốn sửa lại công thức, sẽ có một cảnh báo xuất hiện, ngăn không cho bạn nhập vào. Xin nhắc lại, phương pháp này không cấm việc xóa hẳn công thức, cũng như dán đè thứ gì đó vào những ô chứa công thức.
Tự động bật tắt chức năng bảo vệ
Phương pháp này, sẽ tự động bật chức năng bảo vệ bảng tính (Protect) mỗi khi bạn chọn một ô đã được khóa (locked), nhưng nó cũng sẽ tự động tắt chức năng bảo vệ khi bạn chọn một ô không bị khóa.
Để bắt đầu, bạn hãy chắc chắn rằng những ô bạn muốn bảo vệ (ô chứa công thức) đã được khóa, còn những ô không cần bảo vệ thì không bị khóa, như tôi đã trình bày ở phương pháp thứ nhất. Sau đó, bạn nhấnAlt+F11, nhấn vào Sheet mà bạn muốn bảo vệ các ô đã khóa ở trong đó, rồi nhập vào trong khung soạn thảo đoạn code sau đây:
VBA excel Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Locked = True Then Me.Protect Password:=”Secret” Else Me.Unprotect Password:=”Secret” End If End Su
Nếu không cần đến password, bạn không cần dùng đoạn Password:=”Secret”, hoặc nếu muốn Password là thứ gì khác, bạn sửa lại chữ Secret bằng cái bạn muốn.
Nếu bạn lo rằng người ta có thể vào trong khung soạn thảo VBA để xem password, bạn có thể bảo vệ các code này (không cho xem) bằng cách chọn Tools ➝VBAProject Properties, chọntab Properties, chọnLock Project for Viewing, và nhập vào một password.
Tuy nhiên, phương pháp này cũng không hoạt động hoàn hảo, mặc dù nó cũng giúp bạn được phần nào việc bảo vệ các công thức. Từ khóa Target được sử dụng trong đoạn code sẽ chỉ để tham chiếu đến ô đang “active” ngay tại thời điểm nó được chọn (xin nói thêm, cho dù bạn chọn một dãy, nhưng trong dãy đó, chỉ có một ô “active” mà thôi, là ô đang có màu khác với những ô còn lại). Vì lý do này, nếu một người nào đó chọn một dãy các ô (với ô “active” không bị khóa), thì người đó có thể xóa toàn bộ dãy ô này, bởi vì khi đó thì chức năngUnprotectđã được tự động bật!