5

TL; DR, чего я хочу добиться:

  • Скрыть некоторые столбцы, которые я не хочу показывать никому (отметьте)
  • Скрыть некоторые столбцы, которые я хочу показать только для некоторых пользователей (отметьте)
  • Установите отдельные пароли для обеих групп столбцов (одну я не буду раскрывать, а другую я буду раскрывать выбранным пользователям) (снимите флажок)

Но проблема в том, что:

  • Если я установлю флажок "Разрешить всем пользователям форматировать столбцы" на уровне защиты всего листа, ВСЕ столбцы могут быть никем не скрыты
  • Если я установлю пароль для диапазона ("разрешить пользователям редактировать диапазоны"), а флажок "разрешить всем пользователям форматировать столбцы" не будет отмечен, ни один столбец не может быть скрыт без знания старшего пароля (который защищает также столбцы, которые я не хочу покажи всем)

Полный рассказ:

У меня есть файл Excel, которым я хотел бы поделиться. Есть определенные скрытые колонны, которые я не хочу, чтобы кто-то показывал. Но с другой стороны есть 2 столбца, которые я хотел бы защитить таким образом, чтобы некоторые пользователи могли их просматривать (показывать).

Я копался в защитных листах, предоставляя пользователям доступ к диапазонам и т.д., Но мне не удается найти решение для скрытия / скрытия столбцов.

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

Поэтому я попытался реализовать что-то на уровне целого листа и обнаружил, что есть атрибут "Разрешить всем пользователям" -> "Форматирование столбцов". Но тогда все пользователи смогут отобразить ВСЕ столбцы (и я только хочу, чтобы они могли отображать столбцы, которые я выбрал).

Кстати, я использую Excel 2007.

2 ответа2

2

Я бы разместил скрытые ячейки на другом листе и защитил бы их с помощью VBA, например:

Sheets("sheet4").Visible = xlVeryHidden или

Worksheets("sheet1").protect "Password", UserInterfaceOnly:=True или

ActiveSheet.protect "Password", AllowFormattingRows:=True, AllowFormattingColumns:=True

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

0

У меня была похожая проблема, и я использовал группирование данных для разделения сгруппированных строк (которые я позволил пользователю расширять) и скрытых строк (которые не могли быть скрыты). Защита листа без возможности пользовательского форматирования приводит к появлению скрытых строк, которые нельзя скрыть. Расширение групп столбцов было разрешено с помощью следующего кода:

Dim wSheet as Worksheet

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

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