|
CHÍP CÙNG DÂN
“KẸP” GIẤY |
|
Bảo vệ công thức
trong Microsoft Excel
TRẦN QUÝ PHI (Quảng Nam)
|
|
Một
bảng tính Excel thông thường có hai phần: dữ liệu
“thô” là số liệu thực tế và phần công thức để tính
toán. Công thức để tính toán đôi khi khá phức tạp và
đòi hỏi nhiều công sức, còn dữ liệu thô thì có thể
ai nhập cũng được. Do đó, vấn đề sẽ không còn đơn
giản nếu trong bảng tính có chỗ ta muốn bảo vệ mà có
chỗ lại không. |
|
Cách làm của tôi trong việc bảo vệ công thức là cứ
để các ô bị locked theo mặc định, không cần phải
thay đổi gì. Nhưng khi người dùng thay đổi (kể cả
việc xóa) các ô có công thức (bắt đầu bằng dấu = )
thì việc khóa sẽ thực hiện (giống như vào menu Tools
-> Protect Sheet). Còn khi người dùng thay đổi ô
không phải là công thức thì việc thay đổi sẽ được
chấp nhận (tương đương với việc chọn Tools\Unprotect
Sheet) |
|
Cách làm như sau: |
|
Bước 1: Vào menu Tools
-> Macro -> Visual Basic Editor |
|
Bước 2: Cửa sổ soạn
thảo Visual Basic hiện ra, khung bên trái là Project
Explore (nếu chưa thấy thì chọn menu View -> Project
Explorer). Nhấp kép chuột vào This WorkBook, gõ vào
khung soạn thảo bên phải đoạn mã 1 |
|
Đoạn mã 1 |
|
Private Sub
Workbook_SheetSelectionChange
(ByVal Sh As Object, ByVal
Target As Range)
Dim rng As Range
For Each rng In Target.Cells
If rng.HasFormula Then
ActiveSheet.Protect
Exit Sub
Else
ActiveSheet.Unprotect
End If
Next rng
End Sub |
|
Bước 3: Đóng cửa sổ
Visual Basic Editor, lưu và thoát khỏi Excel. Kể từ
đây, các công thức sẽ được bảo vệ. |
|
LƯU Ý: |
|
1)
Một số dữ liệu dù bản chất không là công thức nhưng
bạn muốn nó không bị thay đổi thì có thể nhập như
dưới dạng công thức với dấu bằng để có thể được bảo
vệ luôn, chẳng hạn =290.000 thay vì là một con số
290.000 |
|
2) Người dùng có thể “táy máy” chọn Tools\Unprotect
Sheet để sửa đổi, vì vậy cần đặt thêm mật khẩu trong
đoạn mã trên: |
|
Ở câu lệnh ActiveSheet.Protect ta viết thành (giả sử mật
khẩu là “123456”): ActiveSheet.Protect(“123456”) |
|
Và do đó ở câu lệnh ActiveSheet.Unprotect phải sửa lại
là: ActiveSheet.Unprotect(“123456”) |
|
3) Nếu cẩn thận hơn, phòng người dùng vào Visual Basic
Editor để “dòm” mật khẩu (giả sử tên book của bạn là
bangtinh) thì mở cửa sổ Visual Basic Editor -> khung
Project Explorer, nhấp phải vào VBAProject(bangtinh.xls)
-> Properties -> thẻ Protection, chọn Lock project for
viewing -> gõ mật khẩu - > lưu và thoát khỏi Excel. |
|
|