Bảo vệ công thức trong Microsoft Excel
Chia sẻ bởi Nguyễn Hà |
Ngày 14/10/2018 |
29
Chia sẻ tài liệu: Bảo vệ công thức trong Microsoft Excel thuộc Tư liệu tham khảo
Nội dung tài liệu:
Bảo vệ công thức trong Microsoft Excel ?
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 ToolsUnprotect Sheet) Vào menu Tools - Macro - Visual Basic Editor 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ã 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 Đó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ệ. - 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 - Người dùng có thể “táy máy” chọn ToolsUnprotect 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”) - 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.
Ngày gửi: 28/05/2008 - 13:17
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 ToolsUnprotect Sheet) Vào menu Tools - Macro - Visual Basic Editor 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ã 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 Đó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ệ. - 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 - Người dùng có thể “táy máy” chọn ToolsUnprotect 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”) - 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.
Ngày gửi: 28/05/2008 - 13:17
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Nguyễn Hà
Dung lượng: 30,50KB|
Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)