61

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

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

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

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

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

Есть идеи?

2 ответа2

110

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

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

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

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

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

9

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

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

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