VBA Protect Sheet | Mật khẩu Bảo vệ Trang tính Excel bằng VBA
Trang tính bảo vệ VBA trong Excel
Chúng tôi có thể bảo vệ trang tính excel bằng mã vba không cho phép người dùng thực hiện bất kỳ thay đổi nào đối với dữ liệu trang tính, tất cả những gì họ có thể làm là chỉ đọc báo cáo. Đối với điều này, chúng tôi có một phương pháp vba tích hợp có tên là “Bảo vệ”.
Giống như chúng ta bảo vệ trang tính của mình trong excel, tương tự như vậy, chúng ta có thể sử dụng VBA để bảo vệ trang tính của mình, nó được thực hiện bằng cách sử dụng câu lệnh .protect, có hai phương pháp để bảo vệ trang tính, một là bằng mật khẩu và một phương pháp khác là không cần mật khẩu, cú pháp để bảo vệ trang tính như sau Worksheets (). Bảo vệ mật khẩu.
Chúng tôi thường chia sẻ báo cáo kết thúc cuối cùng với người dùng hoặc người đọc. Khi chúng tôi chia sẻ báo cáo kết thúc cuối cùng với người dùng, chúng tôi mong muốn người dùng sẽ không thực hiện bất kỳ sửa đổi hoặc thao túng báo cáo kết thúc nào. Trong một kịch bản như vậy, tất cả chỉ là về sự tin tưởng, phải không?
Cú pháp
Bảo vệ trang tính liên quan đến các thông số khác nhau để cung cấp điều này không giống như Bỏ bảo vệ trang tính. Hãy xem cú pháp của phương thức Bảo vệ bằng mật khẩu.
Chà !!! Đừng sợ hãi khi nhìn vào cú pháp. Hãy xem phần giải thích của từng đối số bên dưới.
- Tên trang tính: Trước tiên, chúng ta cần đề cập đến trang tính mà chúng ta sẽ bảo vệ.
- Mật khẩu: Chúng ta cần nhập mật khẩu đang sử dụng để bảo vệ. Nếu chúng ta bỏ qua tham số này, excel sẽ khóa trang tính mà không cần mật khẩu và trong khi không bảo vệ trang tính, nó sẽ bỏ bảo vệ mà không hỏi bất kỳ mật khẩu nào.
- Lưu ý: Hãy nhớ mật khẩu bạn đang cung cấp, vì nếu bạn quên thì bạn phải trải qua nhiều cách khó khăn khác nhau.
- Đối tượng Vẽ: Nếu bạn muốn bảo vệ các đối tượng trong trang tính thì bạn có thể chuyển đối số là TRUE hoặc nếu không là FALSE. Giá trị mặc định là true.
- Nội dung: Để bảo vệ nội dung của trang tính, hãy đặt tham số là TRUE hoặc nếu không, FALSE. Giá trị mặc định là FALSE. Điều này sẽ chỉ bảo vệ các ô bị khóa. Giá trị mặc định là true.
- Các tình huống: Nếu có bất kỳ phân tích gì-nếu xảy ra trong các tình huống excel, chúng tôi cũng có thể bảo vệ chúng. Để bảo vệ TRUE hoặc nếu không FALSE. Giá trị mặc định là true.
- Chỉ giao diện người dùng: Nếu bạn muốn bảo vệ giao diện người dùng khác với macro thì nó phải là TRUE. Nếu đối số này bị bỏ qua thì nó sẽ bảo vệ cả macro và giao diện người dùng. Nếu bạn đặt đối số thành TRUE, nó sẽ chỉ bảo vệ giao diện người dùng. Giá trị mặc định là FALSE.
- Cho phép Định dạng Ô: Nếu bạn muốn cho phép người dùng định dạng ô thì bạn có thể đặt tham số là TRUE hoặc nếu không là FALSE. Giá trị mặc định là FALSE.
- Cho phép Định dạng Cột: Nếu bạn muốn cho phép người dùng định dạng bất kỳ cột nào trong trang tính được bảo vệ thì bạn có thể đặt tham số là TRUE hoặc nếu không là FALSE. Giá trị mặc định là FALSE.
- Cho phép Định dạng Hàng: Nếu bạn muốn cho phép người dùng định dạng bất kỳ hàng nào trong trang tính được bảo vệ thì bạn có thể đặt tham số là TRUE hoặc nếu không là FALSE. Giá trị mặc định là FALSE.
- Cho phép Chèn Cột trong VBA: bạn muốn cho phép người dùng chèn các cột mới thì bạn cần đặt điều này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép Chèn hàng: Nếu bạn muốn cho phép người dùng chèn hàng mới thì bạn cần đặt giá trị này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép Chèn siêu liên kết: Nếu bạn muốn cho phép người dùng chèn các siêu liên kết thì bạn cần đặt điều này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép xóa cột: Nếu bạn muốn cho phép người dùng xóa các cột trong VBA thì bạn cần đặt điều này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép Xóa hàng: Nếu bạn muốn cho phép người dùng xóa các hàng thì bạn cần đặt điều này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép sắp xếp: Nếu bạn muốn cho phép người dùng sắp xếp dữ liệu thì bạn cần đặt giá trị này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép lọc: Nếu bạn muốn cho phép người dùng lọc dữ liệu thì bạn cần đặt điều này thành TRUE. Giá trị mặc định là FALSE.
- Cho phép sử dụng bảng tổng hợp: Nếu bạn muốn cho phép người dùng sử dụng bảng tổng hợp thì bạn cần đặt điều này thành TRUE. Giá trị mặc định là FALSE.
Làm thế nào để Bảo vệ Trang tính bằng Mã VBA?
Bạn có thể tải xuống Mẫu VBA Protect Sheet Excel này tại đây - Mẫu VBA Protect Sheet ExcelBước 1: Chọn Trang tính cần được bảo vệ
Để bảo vệ trang tính, bước đầu tiên là quyết định xem trang tính nào chúng ta cần bảo vệ bằng mật khẩu và chúng ta cần gọi trang tính bằng tên của nó bằng cách sử dụng vba Worksheet Object.
Ví dụ: giả sử bạn muốn bảo vệ trang tính có tên là “Trang tính chính” thì bạn cần phải đề cập đến tên trang tính như bên dưới.
Bước 2: Xác định biến bảng tính
Sau khi đề cập đến tên bảng tính, hãy đặt một dấu chấm, nhưng chúng tôi không thấy bất kỳ danh sách IntelliSense nào để làm việc, điều này gây khó khăn cho công việc. Để có quyền truy cập vào danh sách IntelliSense, hãy xác định biến dưới dạng trang tính.
Mã:
Sub Protect_Example1 () Dim Ws As Worksheet End Sub
Bước 3: Cung cấp tài liệu tham khảo bảng tính
Bây giờ đặt tham chiếu trang tính thành biến dưới dạng Trang tính (“Trang tính chính”) .
Mã:
Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Master Sheet") End Sub
Bây giờ biến “Ws” giữ tham chiếu của trang tính có tên là “Trang tính chính”. Bằng cách sử dụng biến này, chúng ta có thể truy cập vào danh sách intellisense.
Bước 4: Chọn Phương pháp Bảo vệ
Chọn phương pháp “Bảo vệ” từ danh sách IntelliSense.
Bước 5: Nhập mật khẩu
Chỉ định mật khẩu trong dấu ngoặc kép.
Mã:
Sub Protect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Master Sheet") Ws.Protect Password: = "MyPassword" End Sub
Bước 6: Chạy mã
Sau đó, chạy mã theo cách thủ công hoặc sử dụng phím tắt F5, nó sẽ bảo vệ trang tính có tên là “Trang tính chính” .
Khi trang tính được bảo vệ, nếu chúng ta muốn thực hiện bất kỳ sửa đổi nào thì nó sẽ hiển thị một số thông báo lỗi như hình dưới đây.
Trong trường hợp nếu bạn muốn bảo vệ nhiều hơn một trang tính thì chúng ta cần sử dụng các vòng lặp, dưới đây là mã ví dụ để bảo vệ trang tính.
Sub Protect_Example2 () Dim Ws as Worksheet cho mỗi W trong ActiveWorkbook.Worksheets Ws.Protect Password: = "My Passw0rd" Next Ws End Sub
Lưu ý: Sử dụng các thông số khác để thử nghiệm.