3

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

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

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

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

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

1 ответ1

2

Нет встроенного способа сделать это, вам нужно будет создать свой собственный.

Одна из возможностей заключается в следующем:

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

    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
    

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

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

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