У меня есть лист переписи в Excel, в котором должен быть указан список людей в указанной области. Существует определенное количество комнат, в которых могут находиться люди, но они не всегда заполнены. Я хотел бы, чтобы в поле имени отображалось слово "Имя", когда в комнате никого нет, но не печаталось слово "Имя". Затем, когда эта комната заполняется, я бы хотел, чтобы кто-нибудь мог набрать имя нового человека и отобразить и напечатать это имя, полностью заменив слово "Имя", пока этот человек не уйдет и комната снова не откроется. Есть ли способ заставить ячейку отображать заполнитель, который отображается только до тех пор, пока кто-то не введет эту ячейку, а затем снова появится, когда эта ячейка снова станет пустой?
2 ответа
Обычно это невозможно. Но в Excel есть функция, которую вы можете "злоупотреблять" таким образом.
Создайте столбец непосредственно перед столбцом, в который вы хотите ввести данные.
Например, если у вас есть пустая ячейка с "Name" в C1, вы вставляете столбец перед столбцом C, поэтому C1 становится D1, а C1 - пустым.
Теперь введите "Имя" в С1 и сделайте D1 пустым.
Теперь самое главное, измените ширину столбца C на 1 пиксель. Поскольку D1 пуст, C1 будет по-прежнему отображаться с перекрытием D1. Но как только вы введете текст в D1, "Имя" будет перекрываться и больше не будет отображаться. Это может быть видно на 1 пиксель, но это лучшее, что мы можем сделать.
Это пример для ячейки 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
Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:
- щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
- выберите View Code - откроется окно VBE
- вставьте материал и закройте окно VBE
Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.
Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить макрос:
- вызвать окна VBE, как указано выше
- очистить код
- закройте окно 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
Макросы должны быть включены, чтобы это работало!