Excel: Позволяет группировать / намечать на нескольких листах с защитой на
Я пытаюсь разрешить группирование / выделение на нескольких листах с включенной защитой. По какой-то причине в Excel нет простой опции, чтобы сделать это при защите, поэтому я использую этот макрос:
Sub group()
ActiveSheet.EnableOutlining = True'
ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True
End Sub
Я установил его как макрос автозапуска, когда рабочая книга открыта. У меня проблема в том, что я хочу, чтобы она применялась ко всем листам, а не только к активным. Приведенный выше код работает на активном листе, но мне все равно придется вручную запускать макрос на других листах, чтобы обеспечить работу контура.
Мне также нужна некоторая гибкость в том, что иногда листы будут добавляться или удаляться, и я хочу, чтобы код был гибким, чтобы он всегда влиял на все листы, и мне не приходилось называть каждый лист в коде.
Это возможно?
Спасибо.
2 ответа
Может быть:
Option Explicit
Sub group()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws
.Protect Contents:=True, UserInterfaceOnly:=True
.EnableOutlining = True 'add after adding protection to the sheet
End With
Next ws 'you need the next rule for the "For" routine.
End Sub
Привет Пол
Я думаю, что это то, что вы хотите:
Option Explicit
Sub group()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws
.EnableOutlining = True '
.Protect Contents:=True, UserInterfaceOnly:=True
End With
End Sub