Kha v bảo vệ những c chứa cng thức



Chiu ny gip bạn cho php người khc thay đổi cc c chứa dữ liệu, nhưng cấm họ thay đổi cc chứa cng thức. Bạn cũng c thể bảo vệ cc c chứa cng thức m khng cần phải bảo vệ ton bộ trang tnh của bạn.

Excel: Mỗi ngy một tuyệt chiu

Khi tạo một bảng tnh, thường chng ta sẽ phải dng đến một số cng thức, v khi chia sẻ bảng tnh cho mọi người, c thể bạn muốn rằng, khng ai c thể can thiệp (xa, sửa...) những vo những c chứa cng thức. Cch dễ nhất l cũng phổ biến nhất l Protect (bảo vệ) bảng tnh. Tuy nhin, Protect bảng tnh khng chỉ ngăn khng cho can thiệp vo cc chứa cng thức, m n khng cho can thiệp vo tất cả, nghĩa l khng ai c thể lm g bảng tnh của bạn. Đi khi, bạn lại khng muốn như vậy, bạn chỉ muốn bảo vệ cc chứa cng thức thi, cn những chứa dữ liệu th khng.

C ba giải php để thực hiện điều ny: Kha những chứa cng thức, sử dụng chức năng Data-validation cho cc chứa cng thức, v tự động bật tắt chức năng bảo vệ.

Kha cc chứa cng thức

Theo mặc định, tất cả cc trong bảng tnh đều được kha (locked), tuy nhin, n chẳng c tc dụng g trừ phi bạn p dụng lệnh Protect bảng tnh. Đy l cch dễ nhất để p dụng lệnh Protect cho bảng tnh, nhưng chỉ những chứa cng thức th mới bị kha, v được bảo vệ:

Chọn ton bộ bảng tnh, bằng cch nhấn Ctrl+A, hoặc nhấn vo ci vung nằm ở giao điểm của cột A v hng 1. Rồi nhấn nt phải chuột v chọn Format Cells, rồi trong tab Protection, bỏ đnh dấu ở ty chọn Locked, rồi nhấn OK:



Mở kha (Unlock) ton bộ bảng tnh bằng cch bỏ ty chọn Locked


Sau đ, bạn chọn đại một no đ, chọn Home ➝ Find & Select ➝ Go To Special [E2003: Edit | Go To | Special]; hoặc nhấn Ctrl+G hay F5 rồi nhấn vo nt Special.... Hộp thoại sau đy sẽ mở ra:



Dng hộp thoại Go To Special để chọn cc c chứa cng thức

Trong hộp thoại đ, bạn nhấn vo ty chọn Formulas, v nếu cần thiết th chọn hoặc khng chọn thm 4 nhỏ ở dưới (liệt k cc loại cng thức, mặc định th cả 4 ny đều được chọn), v nhấn OK. Sau đ, bạn mở lại hộp thoại Format Cells đ ni ở trn, nhưng lần ny th bạn đnh dấu vo ty chọn Locked, v nếu bạn thch ẩn lun cng thức (khng cho thấy) th đnh dấu vo ty chọn Hidden, nhấn OK.

Việc cuối cng l Protect bảng tnh: Chọn Home trn Ribbon, nhấn vo Format trong nhm Cells, rồi nhấn vo Protect Sheet...; hoặc chọn Review trn Ribbon, rồi nhấn vo Protect Sheet [E2003: Tools | Protection | Protect Worksheet]:



Chọn Protect Sheet từ Home



Chọn Protect Sheet từ Review

Trong hộp thoại Protect Sheet, bỏ đnh dấu ở ty chọn Select locked cells, chỉ cho php Select unlocked cells (chọn những khng kha), v nhập vo một password, nếu cần thiết:



Bỏ ty chọn Select locked cells trong hộp thoại Protect Sheet


Vậy l xong. Từ by giờ, những chứa cng thức của bạn sẽ được bảo vệ, c thể khng xem thấy được nếu bạn đ chọn Hidden, bạn khng lo những cng thức ny bị can thiệp nữa.


Sử dụng Data-validation

Sử dụng Data-validation, chỉ l đơn giản khng cho ghi đ vo những c chứa cng thức, nghĩa l khng cho sửa cng thức. Tuy nhin, phương php ny chỉ phng ngừa cho chnh bạn, nghĩa l trnh việc ty my sửa lại ci g đ trong những chứa cng thức, chứ thật ra, mặc d đ được "Validation", bạn vẫn c thể xa cng thức, hoặc dn vo những đ bất kỳ dữ liệu no bạn thch... Ni chung n khng bảo vệ được g nhiều. Nhưng cũng xin ni sơ qua về phương php ny:

Để thực hiện, bạn hy chọn những chứa cng thức bằng chức năng Go To Specials m ti đ ni ở trn. Rồi, với những chứa cng thức đang được chọn, bạn gọi Data Validation từ menu Data trn Ribbon [E2003: Data | Validation]. Trong hộp thoại ny, chọn tab Settings, chọn Custom cho khung Allow, v nhập cng thức ny: =" " vo khung Formula, rồi nhấn OK, như hnh sau:



Sử dụng Data Validation để bảo vệ những chứa cng thức


Kể từ đy, mỗi khi bạn nhập bất kỳ thứ g vo trong những chứa cng thức, hoặc bạn muốn sửa lại cng thức, sẽ c một cảnh bo xuất hiện, ngăn khng cho bạn nhập vo. Xin nhắc lại, phương php ny khng cấm việc xa hẳn cng thức, cũng như dn đ thứ g đ vo những chứa cng thức.

Tự động bật tắt chức năng bảo vệ

Phương php ny, sẽ tự động bật chức năng bảo vệ bảng tnh (Protect) mỗi khi bạn chọn một đ được kha (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 khng bị kha.

Để bắt đầu, bạn hy chắc chắn rằng những bạn muốn bảo vệ ( chứa cng thức) đ được kha, cn những khng cần bảo vệ th khng bị kha, như ti đ trnh by ở phương php thứ nhất. Sau đ, bạn nhấn Alt+F11, nhấn vo Sheet m bạn muốn bảo vệ cc đ kha ở trong đ, rồi nhập vo trong khung soạn thảo đoạn code sau đy:




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 Sub




Nếu khng cần đến password, bạn khng cần dng đoạn Password:="Secret", hoặc nếu muốn Password l thứ g khc, bạn sửa lại chữ Secret bằng ci bạn muốn.

Nếu bạn lo rằng người ta c thể vo trong khung soạn thảo VBA để xem password, bạn c thể bảo vệ cc code ny (khng cho xem) bằng cch chọn Tools ➝ VBAProject Properties, chọn tab Properties, chọn Lock Project for Viewing, v nhập vo một password.

Tuy nhin, phương php ny cũng khng hoạt động hon hảo, mặc d n cũng gip bạn được phần no việc bảo vệ cc cng thức. Từ kha 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 ni thm, cho d bạn chọn một dy, nhưng trong dy đ, chỉ c một "active" m thi, l đang c mu khc với những cn lại). V l do ny, nếu một người no đ chọn một dy cc (với "active" khng bị kha), th người đ c thể xa ton bộ dy ny, bởi v khi đ th chức năng Unprotect đ được tự động bật!