Thông báo
Mỗi lần đặt câu hỏi bạn sẽ bị trừ đi -2 điểm trong tổng số điểm của mình.
Mỗi lần trả lời câu hỏi bạn sẽ được cộng thêm 5 điểm trong tổng số điểm của mình.
Mỗi lần đăng tin rao vặt bạn sẽ được cộng thêm 5 điểm trong tổng số điểm của mình.
Mỗi lần phản hồi tin rao vặt bạn sẽ được cộng thêm 1 điểm trong tổng số điểm của mình.
asavenger avatar
Gửi tin nhắn đến asavenger

Bảo vệ công thức trong Microsoft Excel ?

hix ! giúp mình với !
Ngày gửi: 28/05/2008 - 13:16
Số lượt xem: 632
Trả lời: 2
Báo vi phạmBáo cáo vi phạm Ưa thíchThêm vào ưa thích
Trả lời câu hỏi này

Danh sách trả lời (2)
Hiển thị :
Gửi tin nhắn đến asavenger
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)

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 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”)

- 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
Gửi tin nhắn đến asavenger
Trích dẫn:
Từ bài viết của linhvn

Câu trả lời hay quá.
Thanks, đúng cái mình cần vọc.
Ngày gửi: 02/09/2008 - 08:16

Sản phẩm tham khảo tại cửa hàng.