Как отфильтровать строки, скрыть / показать столбцы в защищенном листе? - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть лист Excel для совместной работы в группах. Он защищен паролем.

Из-за ограничения защиты паролем я пытаюсь составить код VBA, чтобы другие пользователи могли по-прежнему фильтровать строки, скрывать / отображать столбцы, находясь в защищенной рабочей таблице.

Он находится в ThisWorkbook следующим образом: -

Private Sub Workbook_Open()

Dim wSheet As Worksheet

For Each wSheet In Worksheets
    wSheet.Protect Password:="LoveisPatience", _
    UserInterFaceOnly:=True
Next wSheet

With ActiveSheet
    .Protect Password:="LoveisPatience", AllowFiltering:=True
    .EnableSelection = xlUnlockedCells
End With

With ActiveSheet
    .Protect Password:="LoveisPatience", AllowFormattingColumns:=True
    .EnableSelection = xlUnlockedCells
End With

End Sub

С помощью приведенного выше кода мне удается скрыть столбцы, которые ранее были заполнены «Вкладка данных> Группа», но Я не смог отобразить ни одного столбца.

И из-за включения этого «AllowFormattingColumns:» функция «AllowFiltering» для строк теперь не работает.

Как сделать так, чтобы строки фильтра и скрытие / отображение столбцов работали без проблем?

1 Ответ

0 голосов
/ 16 февраля 2020

У меня работает следующий код:

Private Sub Workbook_Open()

Dim wSheet As Worksheet

For Each wSheet In Worksheets
    wSheet.Protect Password:="password", UserInterFaceOnly:=True
Next wSheet

With ActiveSheet
    .Protect Password:="password", AllowFiltering:=True, AllowFormattingColumns:=True
    .EnableSelection = xlUnlockedCells
End With

Кажется, что проблема заключается в несоответствии между этими двумя утверждениями. Второй оператор with (столбцы форматирования) блокировал первый (фильтрация). Это было немного странно, потому что строки были разблокированы, как и должно быть.

Это работает для вас?

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...