VBA Workbook Protection (Password Protect / Unprotect)

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
wave wave wave wave wave