У меня есть лист переписи в Excel, в котором должен быть указан список людей в указанной области. Существует определенное количество комнат, в которых могут находиться люди, но они не всегда заполнены. Я хотел бы, чтобы в поле имени отображалось слово "Имя", когда в комнате никого нет, но не печаталось слово "Имя". Затем, когда эта комната заполняется, я бы хотел, чтобы кто-нибудь мог набрать имя нового человека и отобразить и напечатать это имя, полностью заменив слово "Имя", пока этот человек не уйдет и комната снова не откроется. Есть ли способ заставить ячейку отображать заполнитель, который отображается только до тех пор, пока кто-то не введет эту ячейку, а затем снова появится, когда эта ячейка снова станет пустой?

2 ответа2

2

Обычно это невозможно. Но в Excel есть функция, которую вы можете "злоупотреблять" таким образом.

Создайте столбец непосредственно перед столбцом, в который вы хотите ввести данные.

Например, если у вас есть пустая ячейка с "Name" в C1, вы вставляете столбец перед столбцом C, поэтому C1 становится D1, а C1 - пустым.

Теперь введите "Имя" в С1 и сделайте D1 пустым.

Теперь самое главное, измените ширину столбца C на 1 пиксель. Поскольку D1 пуст, C1 будет по-прежнему отображаться с перекрытием D1. Но как только вы введете текст в D1, "Имя" будет перекрываться и больше не будет отображаться. Это может быть видно на 1 пиксель, но это лучшее, что мы можем сделать.

0

Это пример для ячейки B9. Поместите следующий макрос событий в область кода рабочего листа. После установки он будет постоянно контролировать ячейку. Если вы когда-нибудь очистите ячейку, макрос поместит "Имя" в ячейку:

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim MyCell As Range
   Set MyCell = Range("B9")
   If Intersect(MyCell, Target) Is Nothing Then Exit Sub
   If MyCell.Value <> "" Then Exit Sub
   Application.EnableEvents = False
      MyCell.Value = "Name"
   Application.EnableEvents = True
End Sub

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите View Code - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. вызвать окна VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код листа), см .:

http://www.mvps.org/dmcritchie/excel/event.htm

Макросы должны быть включены, чтобы это работало!

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