Thật không may khi mật khẩu bảo vệ trang tính của bạn, không có tùy chọn nào để kiểm tra điều đó sẽ cho phép bạn cho phép người dùng sử dụng các nút mở rộng/thu gọn cho các nhóm ô. Cách duy nhất để thực hiện chức năng như vậy là chạy macro VBA
Chìa khóa để có được chức năng này là đặt thuộc tính bảo vệ UserInterfaceOnly thành TRUE và sau đó bật khả năng mở rộng/thu gọn các nhóm hàng/cột. Mã này chỉ cần được chạy một lần trên mỗi trang tính. Sau đó, bạn có thể bảo vệ trang tính của mình bằng mật khẩu theo cách thủ công [biết rằng tính năng đường viền sẽ luôn hoạt động khi tính năng bảo vệ trang tính được bật]
Thay đổi cài đặt bảo vệ ActiveSheet
Đây là mã bạn sẽ cần chạy để cho phép các nút phác thảo hoạt động trên tab bảng tính hiện được chọn của bạn
Sub EnableOutliningWithProtection[]
'PURPOSE. Cho phép chức năng Outline khi Trang tính được bảo vệ
'SOURCE. www. Bảng tínhGuru. com/the-code-vault
'Trang tính hiện tại được bảo vệ bằng mật khẩu
ActiveSheet. bảo vệ mật khẩu. = "",Chỉ giao diện người dùng. = True
'Bật khả năng thu gọn/mở rộng nhóm
ActiveSheet. EnableOutlining = True
'Unprotect Sheet
ActiveSheet. Bỏ bảo vệ ""
Kết thúc Phụ
Thay đổi mọi trang tính trong ActiveWorkbook
Thay vào đó, bạn có thể chạy đoạn mã sau để chạy trên mọi trang tính trong sổ làm việc hiện tại của mình. Lưu ý rằng nếu bạn tạo các trang tính mới trong tương lai, bạn sẽ cần chạy lại mã này để cài đặt bảo vệ [các] trang tính mới cũng được thay đổi
Sub EnableOutliningWithProtection_AllSheets[]
'PURPOSE. Cho phép chức năng Outline trong khi Bảo vệ trong tất cả các Trang tính
'SOURCE. www. Bảng tínhGuru. com/the-code-vault
Dim sht As Trang tính
'Loop through each Worksheet in ActiveWorkbook
For Each sht In ActiveWorkbook.Worksheets
'Trang tính hiện tại được bảo vệ bằng mật khẩu
sht. bảo vệ mật khẩu. = "",Chỉ giao diện người dùng. = True
'Bật khả năng thu gọn/mở rộng nhóm
sht.EnableOutlining = True
'Bỏ bảo vệ trang tính
sht.Unprotect ""
Tiếp theo sht
End Sub
Sử dụng mã VBA được tìm thấy trên Internet
Bây giờ bạn đã tìm thấy một số mã VBA có khả năng giải quyết vấn đề tự động hóa Excel của mình, bạn sẽ làm gì với nó?
Bắt đầu Tự động hóa Excel
Bạn mới làm quen với VBA và không biết bắt đầu từ đâu? . Bài viết này sẽ không làm bạn choáng ngợp với những thuật ngữ lập trình hoa mỹ, vì nó cung cấp cho bạn một cách tiếp cận đơn giản và dễ hiểu đối với những điều cơ bản mà tôi ước mình biết khi cố gắng dạy bản thân cách tự động hóa các tác vụ trong Excel bằng VBA Macros
Ngoài ra, nếu bạn chưa xem qua tính năng tự động hóa mới nhất của Excel có tên là Power Query, thì tôi cũng đã tổng hợp hướng dẫn dành cho người mới bắt đầu để tự động hóa bằng tính năng Power Query của Excel. Tính năng Excel tích hợp ít được biết đến này cho phép bạn tự động hợp nhất và xóa dữ liệu mà không cần mã hóa
Làm cách nào để tôi sửa đổi điều này để phù hợp với nhu cầu cụ thể của mình?
Rất có thể bài đăng này không cung cấp cho bạn câu trả lời chính xác mà bạn đang tìm kiếm. Tất cả chúng ta đều có những tình huống khác nhau và không thể tính đến mọi nhu cầu cụ thể mà một người có thể có. Đó là lý do tại sao tôi muốn chia sẻ với bạn. Hướng dẫn của tôi để có được giải pháp cho vấn đề của bạn NHANH CHÓNG. Trong bài viết này, tôi giải thích các chiến lược tốt nhất mà tôi đã nghĩ ra trong nhiều năm để có câu trả lời nhanh cho các vấn đề phức tạp trong Excel, PowerPoint, VBA, bạn có thể đặt tên cho nó.
Tôi thực sự khuyên bạn nên xem hướng dẫn này trước khi hỏi tôi hoặc bất kỳ ai khác trong phần nhận xét để giải quyết vấn đề cụ thể của bạn. Tôi có thể đảm bảo rằng 9 trên 10 lần, một trong những chiến lược của tôi sẽ mang lại cho bạn [những] câu trả lời mà bạn đang cần nhanh hơn thời gian tôi phải quay lại với bạn bằng một giải pháp khả thi. Tôi cố gắng hết sức để giúp đỡ mọi người, nhưng đôi khi tôi không có thời gian để trả lời câu hỏi của mọi người [dường như không bao giờ có đủ thời gian trong ngày. ]
Tính năng bảo vệ trang tính được thiết kế để hạn chế người dùng sửa đổi nội dung và cấu trúc của trang tính. Khi một trang tính được bảo vệ, người dùng chỉ có thể chỉnh sửa nội dung của các ô được đánh dấu rõ ràng là đã mở khóa. Ngoài ra, mô hình cung cấp các tùy chọn bảo vệ cho phép bạn chọn một bộ lệnh sẽ khả dụng cho người dùng khi bật tính năng bảo vệ
Bạn có thể thực thi bảo vệ trang tính có hoặc không có mật khẩu và bạn luôn có thể bỏ bảo vệ sổ làm việc khi cần. Bạn cũng có thể cho phép người dùng xóa bảo vệ bằng cách nhập đúng mật khẩu
Chức năng bảo vệ bảo vệ nội dung trang tính khỏi bị chỉnh sửa. Nếu bạn cần bảo vệ tài liệu để chỉ có thể mở nó sau khi cung cấp mật khẩu cho nó, bạn nên mã hóa nó. Chức năng mã hóa hiện không được hỗ trợ trong SpreadProcessing và bạn có thể bỏ phiếu cho việc triển khai nó bằng cách sử dụng yêu cầu công khai cho nó
Cách bảo vệ và bỏ bảo vệ một trang tính
Lớp Worksheet hiển thị một phương thức Protect[] có hai tham số. chuỗi mật khẩu và các tùy chọn bảo vệ trang tính
Ví dụ 1 đặt thuộc tính IsLocked của ô A1 thành false và bảo vệ trang tính bằng mật khẩu và các tùy chọn bảo vệ mặc định. Vì theo mặc định, tất cả các ô đều bị khóa, sau khi trang tính được bảo vệ, người dùng sẽ chỉ có thể chỉnh sửa giá trị trong ô A1 vì nó được đánh dấu rõ ràng là đã mở khóa
ví dụ 1. Bảo vệ một Worksheet
Workbook workbook = new Workbook[];
Worksheet worksheet = workbook.Worksheets.Add[];
worksheet.Cells[0, 0].SetIsLocked[false];
worksheet.Protect["telerik", WorksheetProtectionOptions.Default];
Sử dụng phương thức Unprotect[string] của lớp Worksheet để loại bỏ lớp bảo vệ. Phương thức trả về một giá trị Boolean cho biết trang tính có được bảo vệ thành công hay không
Ví dụ 2 trình bày cách bỏ bảo vệ một trang tính
ví dụ 2. Bỏ bảo vệ một Worksheet
Workbook workbook = new Workbook[];
Worksheet worksheet = workbook.Worksheets.Add[];
worksheet.Protect["telerik", WorksheetProtectionOptions.Default];
worksheet.Unprotect["telerik"];
Tùy chọn bảo vệ
Tính năng bảo vệ trang tính cho phép chỉ định một tập hợp các tùy chọn sẽ khả dụng cho người dùng khi thực thi bảo vệ. Ví dụ: bạn có thể muốn cho phép người dùng chèn và xóa hàng nhưng hạn chế việc chèn và xóa cột
Để đạt được điều đó, bạn cần chuyển một đối tượng WorksheetProtectionOptions làm đối số thứ hai của phương thức Protect[]
Ví dụ 3 trình bày cách bảo vệ trang tính bằng WorksheetProtectionOptions
ví dụ 3. Bảo vệ Worksheet với WorksheetProtectionOptions
Workbook workbook = new Workbook[];
Worksheet worksheet = workbook.Worksheets.Add[];
WorksheetProtectionOptions options = new WorksheetProtectionOptions[allowInsertRows: true, allowDeleteRows: true];
worksheet.Protect["telerik", options];
Lớp WorksheetProtectionOptions hiển thị các thuộc tính sau để bạn có thể kiểm soát những hành động mà người dùng có thể thực hiện