У Мандера есть рабочий лист, для которого он хочет изменить цвет фона. После изменения он хочет, чтобы цвет был «неизменным» кем-либо еще. Мандер знает, что может использовать защиту рабочего листа, но это мешает людям фактически использовать рабочий лист. Он не хочет прекращать использование рабочего листа; он просто не хочет, чтобы фон менялся после того, как он его установил.

Есть несколько способов добиться желаемого. Во-первых, необходимо изучить, как вы применяете защиту рабочего листа. Цвет фона считается форматом ячейки, поэтому все, что вам нужно сделать, это убедиться, что вы защищаете рабочий лист и разрешаете все изменения, кроме форматирования. Выполните следующие действия:

  1. Выделите ячейки, содержимое которых вы хотите, чтобы пользователь мог изменять. (При желании вы можете выбрать все ячейки на листе.)

  2. Откройте вкладку «Главная» на ленте.

  3. Щелкните Форматировать в группе Ячейки, а затем выберите Формат ячеек. Excel отображает диалоговое окно «Формат ячеек».

  4. Убедитесь, что отображается вкладка Защита. (См. Рис. 1.)

  5. Снимите флажок Заблокировано.

  6. Щелкните ОК, чтобы закрыть диалоговое окно.

  7. На вкладке «Главная» ленты все еще отображается, нажмите «Форматировать» в группе «Ячейки», а затем выберите «Защитить лист». Excel отображает диалоговое окно «Защитить лист». (См. Рис. 2.)

  8. Установите все флажки, кроме тех, которые относятся к форматированию («Форматировать ячейки», «Форматировать столбцы» и «Форматировать строки»).

  9. Вам не нужно вводить пароль, если вы этого не хотите; просто нажмите ОК.

Теперь люди могут вносить любые изменения в любые ячейки, выбранные на шаге 1, за исключением изменения любого форматирования. Это означает, что цвет вашего фона остается защищенным.

У этого подхода есть проблема — вы можете разрешить пользователю изменять другое форматирование ячеек, например способ отображения чисел, дат или времени. Однако, поскольку вы защитили форматирование листа, эти вещи нельзя изменить.

Единственное, что вы можете сделать, чтобы обойти это, — это использовать подход, основанный на макросах. Простой способ — создать обработчик событий, который изменяет цвет фона рабочего листа всякий раз, когда он активируется. Таким образом, если кто-то изменит цвет фона, в следующий раз, когда рабочий лист будет активирован, эти изменения будут фактически отменены. Вот пример, который устанавливает бирюзовый цвет фона:

Private Sub Worksheet_Activate()

With Cells.Interior         .Pattern = xlSolid         .PatternColorIndex = xlAutomatic         .Color = RGB(0, 192, 192)

.TintAndShade = 0         .PatternTintAndShade = 0     End With End Sub

Этот макрос необходимо добавить в кодовую таблицу для любого рабочего листа, с которым вы хотите его использовать.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (4268) применим к Microsoft Excel 2007, 2010, 2013 и 2016.