автоматически отображать «пожалуйста, введите текст здесь» в определенной ячейке

Просто я хочу использовать двойной клик, чтобы очистить контентную функцию на vba.

У меня есть конкретная ячейка (B5), которая должна отображать «пожалуйста, введите текст здесь» всякий раз, когда в этой ячейке нет текста, и как только пользователь дважды щелкнет ячейку, она удалит и позволит пользователям вводить желаемый текст. Если пользователи оставляют это, и он пуст, как я сказал, он должен отображать «пожалуйста, введите текст здесь …»

Никогда не делал этого, прежде чем извиняться, если это неправильно, но это, похоже, работает. Поместите ниже в код рабочих листов.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(ActiveCell, Cells(5, 2)) Is Nothing Then Target.Clear End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(5,2).Value = "" Then Cells(5,2).Value = "Please enter text." End Sub 

Вы указали «… и разрешите пользователям вводить желаемый текст». Я собираюсь принять формат ячейки General для введенного пользователем текста.

В листе рабочего листа:

 Option Explicit 'you can only double click a single cell so 'no worries about Target being more than one cell here Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Cells(5, "B"), Target) Is Nothing Then 'Cancel = True 'only if you want to disable 'in-cell' editing On Error GoTo bm_Safe_Exit With Target If .Value2 = "please enter text here..." Then Application.EnableEvents = False .Clear End If End With End If bm_Safe_Exit: Application.EnableEvents = True End Sub 'there is a worry about Target being more than one cell here Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Cells(5, "B"), Target) Is Nothing Then On Error GoTo bm_Safe_Exit Application.EnableEvents = False Dim tmp As Variant With Cells(5, "B") If Not CBool(Len(.Value2)) Then .Font.ColorIndex = 10 .Font.Italic = True .Value = "please enter text here..." .NumberFormat = "<@>" Else tmp = .Value .Clear .Value = tmp End If End With End If bm_Safe_Exit: Application.EnableEvents = True End Sub 'special cases when B5 is double-clicked but no input provided Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Cells(5, "B") If Not CBool(Len(.Value2)) Then Application.EnableEvents = False .Font.ColorIndex = 10 .Font.Italic = True .Value = "please enter text here..." .NumberFormat = "<@>" End If End With bm_Safe_Exit: Application.EnableEvents = True End Sub 

Кажется, это охватывает все, что я набросил на него, минимизируя время и усилия вычислений. Он обеспечивает рудиментарный контроль ошибок для поддержания стабильной пользовательской среды.


¹ Пожалуйста, не просите меня ничего объяснять, прежде чем делать собственные исследования. Если вы найдете конкретный момент, с которым у вас возникли проблемы, я постараюсь помочь; если вы не можете понять концепцию, тогда возьмите курс, это выходит за рамки этого места, чтобы объяснить все это.

Interesting Posts

База данных запросов с точкой в ​​названии

Как я могу использовать tkinter для запроса пользователям сохранить DataFrame в файл Excel?

Как я могу ссылаться на ячейку в пределах диапазона имени excel?

xlsx создает ошибку при открытии

Написание кода / макроса Excel VBA для заполнения текстовых полей Powerpoint с значениями ячейки Excel

Streamwriter добавляет лишнюю строку, которая прерывается случайным образом при экспорте из visual studio в csv c #

VBA Excel Выберите файл – при нажатии на отмену текстового поля

Можно ли исключить скрытые строки при поиске дубликатов в Excel?

VBA для проверки состояния канала передачи данных?

классический asp, сортирующий буквенно-цифровые значения из Excel, используя порядок

Разделить текст на несколько строк в соответствии с шириной столбца

Выбирайте все ячейки одновременно выше предельного значения

Microsoft Excel 2007 – Как написать динамический Table_Array для Vlookup

Экспорт значений в формат файла Excel

ссылка MS Excel Широта / Долгота точек для сегментов полилинии в Google Планета Земля

Давайте будем гением компьютера.