Excel — можно ли присвоить ячейке определенное значение, независимо от того, что в ней введено?

Excel — можно ли присвоить ячейке определенное значение, независимо от того, что в ней введено?

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

A1 должен быть пустым, пока кто-то не попытается ввести в него имя. Когда кто-то вводит имя — любое имя — оно автоматически меняется на Джо после нажатия Enter.

Условное форматирование не работает, поскольку, по-видимому, оно влияет только на внешний вид значения в ячейке A1.

Формула не работает, потому что они увидели бы что-то в клетке.

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

Есть идеи?

решение1

Как альтернатива без макросов, это не изменит значение ячейки, но изменит ее отображение. Щелкните правой кнопкой мыши по нужной ячейке, затем щелкните «Формат ячеек». На вкладке чисел щелкните «Пользовательский», затем введите следующий пользовательский числовой формат

"Joe";"Joe";"Joe";"Joe"

Объяснение: Числовые форматы Excel состоят из четырех частей, разделенных точкой с запятой. Значение ячейки определяет, какая часть числового формата используется, и формат выглядит следующим образом:

[positive];[negative];[zero];[text] 

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

решение2

Поставьте следующеемакрос событияв области кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
   Application.EnableEvents = False
      Range("A1").Value = "Joe"
   Application.EnableEvents = True
End Sub

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