VBA Excel: защита листа: UserInterFaceOnly go

В VBA Excel, если я защищаю листы с помощью параметра UserInterFaceOnly: = True после того, как я закрою и снова открою файл, режим UserInterFaceOnly не активен, только защита паролем.

Код: ActiveSheet.Protect Password:="myPassword", UserInterfaceOnly:=True

Зачем?

Вы не можете сделать это, не повторно используя UserInterfaceOnly:=True после повторного открытия книги. Взято из ссылки на метод защиты Vb от Excel:

Если вы примените этот метод с аргументом UserInterfaceOnly, установленным в true, а затем сохраните книгу, весь рабочий лист (а не только интерфейс) будет полностью защищен при повторном открытии книги. Чтобы снова включить защиту пользовательского интерфейса после открытия книги, вы должны снова применить этот метод, если UserInterfaceOnly установлен в true

Теперь, если вы обеспокоены тем, что это занимает слишком много времени (15 секунд, как вы говорите), взгляните на этот ответ Code Review. Я сделал это в нескольких книгах различной степени сложности, и время для повторного применения защиты незначительно во всех версиях, которые я пробовал, в том числе в 2010 году.

Я не уверен, в чем причина этой проблемы, но вы можете обойти ее, добавив код защиты в событие Workbook_Open() , сбросив каждую защиту листа, чтобы иметь UserInterfaceOnly:=True в каждом

  • Как добавить переменные (исходящие из ячейки) в веб-запросах в MS Excel 2010?
  • Переместите каждую 15-ю колонку в новую строку
  • Как использовать поле со списком для отображения информации на основе выбора пользователя?
  • Странные символы, появляющиеся в Excel CSV-экспорте после точек маркера
  • Отчет Microsoft Office Excel 2010 - IF, расчет даты
  • Excel: умножить каждую ячейку в строке X на соответствующую ячейку в строке 2 и получить сумму
  • VBA EXCEL! Может ли кто-нибудь помочь мне в том, как добавить дополнительную книгу в диапазон поиска в нижнем коде,
  • Странное поведение адресов ячеек для несмежных диапазонов: VBA
  • Проверьте, выбрано ли более одной ячейки
  • Отключить кнопку управления в Excel
  • Как заставить эту формулу поддерживать несколько строк / перетаскивание?
  • Interesting Posts

    Соединения данных Microsoft Excel – изменение строки подключения через VBA

    Поместите список согласованных значений в одну ячейку

    Как повернуть данные Excel

    Какой самый быстрый способ пройти через объект Excel Range назад?

    Как вытащить из адресной книги Outlook на основе значений в Excel (VBA)

    VBA копирует пасту массива / диапазон на другую вкладку

    Excel Функция проверки названия улицы в полных адресах

    Excel: установка цвета ячейки в другую

    SQL Server SQLState = 08001 NativeError = 2 при установлении соединения

    Код VBA для выбора столбцов на основе пользовательских переменных в ячейках

    Excel VBA – использование всех выделенных ячеек в столбце с двойным щелчком

    Проблема с DLL в одном из трех экземпляров, в которых используется тот же справочник

    Возврат значения MAX для соответствующего имени из ContactsLog в лист контактов

    DrawingObjects конфликтуют с UserInterfaceOnly – Excel VBA

    Пакетное переименование w / Powershell – нужно искать и сопоставлять file_id с заголовком в csv

    Давайте будем гением компьютера.