2

Я создаю ряд форм в Excel 2007 для использования другими людьми. Они будут иметь доступ к цифровым версиям, и я боюсь, что они в конечном итоге случайно нарушат форматирование, которое я создал. Наиболее вероятный способ, которым они случайно сломают это, используя копирование / вставку.

Есть ли способ заблокировать форматирование, позволяя изменять содержимое ячеек? Под форматированием я имею в виду:

  • Цвет заливки ячейки
  • Границы
  • Объединенные ячейки
  • Тип шрифта / высота / форматирование
  • Содержимое некоторых ячеек (Клетки, которые маркируют)
  • Ширина / высота ячейки (это наименее важно, так как маловероятно, что они случайно изменят это.

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

5 ответов5

1

Комбинация из 2 настроек предоставляет вам эту функциональность:

  1. Выберите ячейки, в которые будет осуществляться ввод данных, зайдите в "Формат ячеек", "Защита" и снимите флажок "ЗАБЛОКИРОВАНО".

  2. На ленте, под обзором, ЗАЩИТИТЕ свой рабочий лист. Обратите внимание, что доступны некоторые исключения: "Выбрать", "Форматировать ячейки", "Вставить", "Удалить" и т.д. Просто оставьте все флажки, кроме "Выбрать". Если вашим пользователям необходимо вставить строки, также включите исключения для "Вставить строки" (и, возможно, "Удалить строки").

1
  • В разделе « Обзор» разблокируйте « Защита» и перейдите на вкладку «Главная».
  • в разделе « Шрифт» (в правом нижнем углу) откройте « Форматирование», выберите вкладку « Защита » и снимите флажок « Заблокировано».
  • На листе выберите ячейки, которые вы хотите защитить, и вернитесь к форматированию (в разделе « Шрифт») и « Защита» и снова установите флажок « Заблокировано».
  • Затем перейдите на вкладку « Обзор » и выберите « Защитить лист». Не забудьте выбрать, какие действия кто-то сможет изменить.
1

Вы можете сделать дубликат (необязательно неформатированный) листа, на который ссылается ваш отформатированный лист. Форматирование дубликата для ввода данных не имеет значения, оно только предоставляет значения. И вы можете полностью защитить отформатированную (для печати и т.д.) Версию.

0

Нажмите вкладку Разработчик, кнопку Visual Basic, чтобы открыть экран кода VB. Вставьте следующее:

Dim cellcolor As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
  Target.Interior.Color = cellcolor
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   cellcolor = Target.Interior.Color
End Sub

Это определяет глобальную переменную для определения цвета ячейки, которую вы выбрали для вставки (в событии SelectionChange). Затем, когда вы вставляете, он переходит к событию Change и устанавливает ячейку в цвет, который вы поймали ранее.

Предостережение: код VB работает, но тогда он не позволит отменить. (Вы копируете / вставляете, и это исправляет цвет ячейки обратно к тому, что у вас было, но если вы решите, что не хотите вставлять, что ж, очень плохо. Может быть, кто-то может помочь там.)

Прекрасно работает для этого, но: не ловит преднамеренные изменения формата. (выберите ячейку; нажмите «Цвет заливки»).

0

Используйте условное форматирование. Пока вы определите диапазон и параметры форматирования, которые вы хотите, он сохранит все форматирование.

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