Excel cho phép bạn khả năng bảo vệ sổ làm việc Excel của bạn khỏi những thay đổi. Hướng dẫn này sẽ chỉ cho bạn cách bảo vệ hoặc bỏ bảo vệ cấu trúc sổ làm việc bằng VBA.
Bảo vệ sổ làm việc VBA
VBA Workbook Protection cho phép bạn khóa cấu trúc của sổ làm việc. Khi sổ làm việc được bảo vệ, người dùng sẽ không thể thêm, xóa, ẩn / hiện hoặc bảo vệ / bỏ bảo vệ trang tính. Nếu bạn đang xây dựng một mô hình, bạn có thể muốn bật tính năng bảo vệ sổ làm việc để ngăn người dùng (hoặc bạn!) Vô tình xóa trang tính.
UnProtect Workbook VBA
Để bỏ bảo vệ sổ làm việc, chỉ cần sử dụng dòng mã sau:
1 | Workbooks ("Book1"). Bỏ bảo vệ |
Lưu ý: mã này sẽ chỉ hoạt động nếu sổ làm việc được bảo vệ không có Một mật khẩu. Nếu nó được bảo vệ bằng mật khẩu, bạn cũng phải nhập mật khẩu để bỏ bảo vệ nó:
Bỏ bảo vệ sổ làm việc bằng mật khẩu
Dòng mã này sẽ bỏ bảo vệ sổ làm việc đã được bảo vệ bằng mật khẩu:
1 | Workbooks ("Book1"). Unprotect Password: = "password" |
hoặc bạn có thể bỏ qua Mật khẩu: =
1 | Workbooks ("Book1"). Bỏ bảo vệ "mật khẩu" |
Bỏ bảo vệ ThisWorkbook
Mã này sẽ bỏ bảo vệ ThisWorkbook (ThisWorkbook là sổ làm việc lưu trữ mã đang chạy. Nó sẽ không bao giờ thay đổi).
1 | ThisWorkbook.Unprotect |
hoặc bỏ bảo vệ ThisWorkbook bằng mật khẩu:
1 | ThisWorkbook.Unprotect "mật khẩu" |
UnProtect ActiveWorkbook
Mã này sẽ bỏ bảo vệ ActiveWorbook.
1 | ActiveWorkbook.Unprotect |
hoặc bỏ bảo vệ ActiveWorkbook bằng mật khẩu:
1 | ActiveWorkbook.Unprotect "mật khẩu" |
Bỏ bảo vệ tất cả các sổ làm việc đang mở
Mã này sẽ bỏ bảo vệ tất cả các sổ làm việc đang mở:
12345678 | Sub UnprotectAllOpenWorkbooks ()Dim wb As WorkbookĐối với mỗi wb trong sổ làm việcwb.UnprotectTuần tiếp theoKết thúc Sub |
UnProtect Workbook - Không cần biết mật khẩu
Nếu bạn cần bỏ bảo vệ sổ làm việc mà không biết mật khẩu, có một số phần bổ trợ để trợ giúp. Tôi muốn giới thiệu Ribbon Commander.
Bỏ bảo vệ tất cả trang tính trong sổ làm việc
Sau khi bỏ bảo vệ một sổ làm việc, bạn cũng có thể muốn bỏ bảo vệ tất cả các trang tính trong sổ làm việc. Đây là một quy trình sẽ bỏ bảo vệ tất cả các trang tính:
12345678 | Sub UnProtectWorkbookAndAllSheets ()Dim ws As WorksheetActiveWorkbook.UnprotectĐối với mỗi ws trong Worksheetsws.UnprotectKế tiếpKết thúc Sub |
Bảo vệ sổ làm việc
Bạn có thể bảo vệ cấu trúc sổ làm việc giống như cách bạn bỏ bảo vệ.
Bảo vệ sổ làm việc không có mật khẩu
Dòng mã này sẽ bảo vệ sổ làm việc (không có mật khẩu)
1 | Workbooks ("Book1"). Bảo vệ |
Lưu ý: Tôi thường áp dụng tính năng bảo vệ sổ làm việc mà không cần mật khẩu, chỉ để ngăn chặn tình cờ thay đổi đối với sổ làm việc.
Bảo vệ sổ làm việc bằng mật khẩu
Mã này sẽ bảo vệ cấu trúc sổ làm việc (bằng mật khẩu)
1 | Workbooks ("Book1"). Bảo vệ "password" |
hoặc:
1 | Workbooks ("Book1"). Bảo vệ Mật khẩu: = "mật khẩu" |
Mật khẩu bảo vệ tệp Excel
Thay vì bảo vệ sổ làm việc, bạn có thể muốn bảo vệ bằng mật khẩu toàn bộ tệp Excel. Để làm điều đó bằng VBA, Lưu Dưới dạng sổ làm việc với mật khẩu:
1 | Workbooks ("Book1"). SaveAs "password" |
Ví dụ về Protect / UnProtect Workbook
Bỏ ẩn tất cả các bảng tính trong bảng tính được bảo vệ
Quy trình này sẽ bỏ bảo vệ sổ làm việc, ẩn tất cả các trang tính và bảo vệ lại sổ làm việc
12345678910 | Sub UnprotectWB_Unhide_All_Sheets ()Dim ws As WorksheetActiveWorkbook.UnprotectĐối với mỗi ws trong Worksheetsws.Vible = xlSheetVosystemKế tiếpActiveWorkbook.ProtectKết thúc Sub |
Bảo vệ Sổ làm việc và Tất cả Trang tính
Quy trình này sẽ bảo vệ tất cả các trang tính trong sổ làm việc và sau đó bảo vệ sổ làm việc:
1234567891011 | Sub ProtectWB_Protect_All_Sheets ()Dim ws As WorksheetActiveWorkbook.UnprotectĐối với mỗi ws trong Worksheetsws.ProtectKế tiếpActiveWorkbook.ProtectKết thúc Sub |
Bạn cũng có thể thêm bảo vệ bằng mật khẩu:
1234567891011 | Sub ProtectWB_Protect_All_Sheets_Pswrd ()Dim ws As WorksheetActiveWorkbook.Unprotect "mật khẩu"Đối với mỗi ws trong Worksheetsws.Protect "mật khẩu"Kế tiếpActiveWorkbook.Protect "mật khẩu"Kết thúc Sub |