Excel cho phép bạn bảo vệ và bỏ bảo vệ trang tính. Tất nhiên, mục đích là cho phép người khác sử dụng sổ làm việc của bạn, nhưng không sửa đổi các ô nhất định trong mỗi trang tính.

Vì bảo vệ được thực hiện ở cấp trang tính, nên có thể rất khó khăn khi xem từng trang tính trong sổ làm việc và bảo vệ hoặc bỏ bảo vệ chúng. Nếu bạn có 25 trang tính, bạn phải kích hoạt từng trang tính, thực hiện bảo vệ hoặc bỏ bảo vệ và chuyển sang trang tiếp theo.

Một phương pháp ít tốn thời gian hơn để bảo vệ từng trang tính trong sổ làm việc là sử dụng macro để thực hiện công việc thực tế. Macro sau sẽ thực hiện thủ thuật:

Sub ProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim J As Integer

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Protect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

Macro để bỏ bảo vệ tất cả các trang tính chỉ hơi khác một chút:

Sub UnProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim J As Integer

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Unprotect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

Mặc dù các macro này sẽ hoạt động tốt, nhưng có một số lưu ý.

Trước tiên, bạn cần đảm bảo rằng biến Mật khẩu trong mỗi macro được đặt thành mật khẩu thích hợp cho trang tính của bạn. (Tất nhiên, điều này giả định rằng tất cả các trang tính đều sử dụng cùng một passwords.)

Cảnh báo thứ hai là vì macro phải bao gồm mật khẩu, nên tính bảo mật tổng thể của sổ làm việc của bạn có thể bị xâm phạm — bất kỳ ai có thể hiển thị macro sẽ biết mật khẩu dành cho sổ làm việc của bạn.

Như một giải pháp cho vấn đề cuối cùng này, bạn có thể sửa đổi các macro để chúng yêu cầu mật khẩu để sử dụng trong công việc của họ. Sau đây sẽ là phiên bản của macro bảo vệ trang tính:

Sub ProtectAllSheetsPass()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim J As Integer     Dim sPWord As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

sPWord = InputBox("What password?", "Protect All")

If sPWord > "" Then         For Each ws In Worksheets             ws.Select             ws.Protect Password:=sPWord         Next ws     End If     Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

Macro hiển thị một hộp nhập yêu cầu mật khẩu. Sau đó, cùng một mật khẩu được sử dụng để bảo vệ mọi trang tính trong sổ làm việc. Loại thay đổi tương tự có thể được thực hiện đối với macro bỏ bảo vệ tất cả các trang tính.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (2275) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: