Есть ли способ задать в Excel значения «по умолчанию» или «заполнители»?

Есть ли способ задать в Excel значения «по умолчанию» или «заполнители»?

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

  • Предотвращайте ошибки в формулах, предоставляя при этом обоснованные предположения, когда пользователь не ввел (или удалил) свое собственное значение.
    • Я мог бы использовать условное форматирование, чтобы предупредить пользователя о значениях по умолчанию, чтобы предотвратить их незнание — тогда он сможет сделать осознанный выбор относительно того, подходит ли это значение для предполагаемых вычислений или нет.
  • Дайте краткое описание того, что предполагается ввести в ячейку, без необходимости иметь отдельный сегмент или документ "инструкции". Это также устранит необходимость в соседней ячейке "Метка", в некоторых случаях, когда это действительно неуместно.

Чтобы добиться желаемого, мне нужна некая формула, скрипт или другой расширенный параметр электронной таблицы, который будет выполнять следующие действия:

  • Показывать значение по умолчанию в ячейке до того, как пользователь введет данные.
  • Разрешить поиск значения по умолчанию любым формулам, ссылающимся на ячейку, если в этой ячейке нет введенных пользователем данных.
  • Позвольте пользователю свободно (естественно, точно так же, как он это делал бы с любой «обычной» ячейкой) перезаписывать отображаемое значение своим собственным значением или формулой, а также находить введенные пользователем данные с помощью любых формул, ссылающихся на ячейку.
  • Если ячейка очищается из-за удаления введенных пользователем данных, возвращается значение по умолчанию.

Есть ли способ сделать это в Excel, или я требую слишком многого от программы для работы с электронными таблицами?

решение1

Встроенного способа сделать это не существует, вам придется создать свой собственный.

Одна из возможностей такова:

  1. Для каждой ячейки, для которой вы хотите задать значение по умолчанию, создайте именованный диапазон на уровне рабочего листа, ссылающийся на эту ячейку, и в поле комментария введите требуемое значение по умолчанию.
  2. Workbook_SheetChangeДобавьте событие модуля Workbook

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim nm As Name
        Dim cl As Range
    
        On Error Resume Next
        For Each cl In Target.Cells
            If IsEmpty(cl) Then
                For Each nm In Sh.Names
                    If nm.RefersToRange.Address = cl.Address Then
                        Application.EnableEvents = False
                        If IsNumeric(nm.Comment) Then
                            nm.RefersToRange.Value = Val(nm.Comment)
                        Else
                            nm.RefersToRange.Value = nm.Comment
                        End If
                        Application.EnableEvents = True
                        Exit For
                    End If
                Next
            End If
        Next
    End Sub
    

Что это делает:

  • Каждый раз при изменении ячейки запускается код события.
  • Если ячейка, которая изменилась, пуста
    • Найдите именованный диапазон рабочего листа, который ссылается на ячейку.
    • Если найдено, скопируйте комментарий «Имя» в значение ячейки, преобразование в числовое значение является целесообразным.

решение2

Я использую метод, который работает следующим образом:

-- простой пример для школьных записей:

  • столбец A — заголовки строк: студенческий билет, фамилия, имя, дата рождения, возраст...
  • col B — фантомный столбец: ширина 1, выравнивание по левому краю, увеличение отступа 1, защищенный, цвет шрифта серый, перенос текста не применяется
  • col C — поля ввода

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

-- поэтому, когда вводится идентификатор ученика, фамилия, имя, дата рождения, адрес, родители и т. д. немедленно отображаются как фантомные значения в строках ниже. Ни в одной из ячеек столбца C ничего нет, поэтому фантомные значения в столбце B расширяются до столбца C. (Числовые значения и значения даты должны быть отформатированы с помощью функции text().) После проверки информации о ребенке оператор переходит вниз, чтобы заполнить расписание занятий, классного руководителя...

-- Если что-то необходимо изменить, в ячейку вводится соответствующая информация, которая сигнализирует о том, что для этого ребенка что-то изменилось. (Фамилия, имя родителя, адрес...)

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

-- Вспомогательный лист может отображать вспомогательный текст, который исчезает при касании ячейки в столбце C. Или логика электронной таблицы может определить, что вспомогательный текст больше не подходит или должен отображать что-то другое.

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

Ограничением является то, что текст-призрак не может быть перенесен в столбец C.

Связанный контент