1

У меня есть общий файл Excel, с которым мне нужно работать сразу нескольким людям. Файл содержит несколько макросов, которые скрывают определенные столбцы в зависимости от имени пользователя.

  • 1) проверить имя пользователя
  • 2) скрыть столбцы A, B, C (для конкретных пользователей)

Как только столбцы скрыты для "ограниченного" пользователя, я не хочу, чтобы пользователь мог отображать столбцы, просто щелкнув правой кнопкой мыши и выбрав "показать". Я не могу действительно защитить / снять защиту листа с помощью макроса (->, так как это общий файл. Я думаю, он выдает ошибку 1004). Защита листа с помощью панелей инструментов Excel также не работает (скрытие / скрытие листов в макросах не работает на защищенных листах).

Подвести итоги:

Общий файл -> незащищенный лист (prb: пользователи могут показывать скрытые столбцы)

Общий файл -> защищенный лист (prb: невозможно скрыть столбцы с помощью макроса)

Я думаю, мне не нужен защищенный лист. Я просто хочу убедиться, что после того, как столбцы будут скрыты, пользователь не сможет их отобразить. Есть идеи как это сделать?

Возможно, отключить пользовательский контроль или что-то. Я не очень знаком с VBA.

Любые советы или предложения будут оценены.

Спасибо!

1 ответ1

0

@Sean упомянул размещение скрытых данных на другом листе, что тоже было моей первой мыслью.

Моя вторая мысль заключалась в том, чтобы иметь автоматически открываемый макрос, который проверяет текущего пользователя и скрывает столбцы, а затем включает защиту. Не самый безопасный, поскольку для кода VBA потребуется пароль, но он решает другие проблемы. Вы также можете защитить код, который уменьшит проблему встраивания пароля.

В прошлом, когда у меня была сложная рабочая книга с частями, которые нужно было скрыть, в моем personal.xls были некоторые макросы, которые помогали блокировать / разблокировать и скрывать / отображать соответствующие детали.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .