Как отобразить календарь при щелчке по определённой ячейке в Excel?
Предположим, что в листе есть диапазон столбцов, в который вам часто нужно вводить и изменять даты, но вручную вводить или изменять дату каждый раз утомительно. Как быстро вводить даты без ручного набора в этом диапазоне столбцов? В этой статье рассказывается о том, как отображать календарь при щелчке по ячейкам определённого диапазона, после чего выбранная дата будет автоматически Вставить дату в выделенную ячейку.
Отображение календаря при щелчке по определённой ячейке с помощью кода VBA
Решите эту задачу пошагово, следуя приведённым ниже инструкциям.
Примечание: этот метод работает только в 32-битной версии Microsoft Excel.
Шаг 1: создайте элемент UserForm с календарём
Создайте элемент UserForm с календарём, который будет появляться при щелчке по ячейке.
1. Нажмите одновременно клавиши Alt+F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. В окне Microsoft Visual Basic для приложений выберите пункты Вставка > UserForm.

3. Затем откроются окна UserForm и Панель элементов. В окне Панель элементов щёлкните правой кнопкой мыши по любому элементу управления и выберите пункт Дополнительные элементы управления в контекстном меню. См. снимок экрана:

4. В диалоговом окне Дополнительные элементы управления прокрутите список вниз, установите флажок напротив элемента Элемент управления Microsoft MonthView в поле Доступные элементы управления и нажмите кнопку ОК.

5. Теперь кнопка MonthView добавлена в окно Панель элементов. Щёлкните эту кнопку MonthView, а затем — в окне UserForm1, чтобы вставить календарь в форму.

Примечание: размер окна UserForm можно подогнать под вставленный календарь, перетащив границу формы.
6. Дважды щёлкните вставленный календарь в UserForm1, и в окне Код замените исходный код приведённым ниже скриптом VBA.
VBA code: create a user form with calendar
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next
Dim xRg As Object
For Each xRg In Selection.Cells
xRg.Value = DateClicked
Next xRg
Unload Me
End Sub Примечание: этот код вставляет дату в выделенную ячейку после выбора даты в календаре.

Шаг 2: активируйте календарь при щелчке по ячейке
Теперь укажите конкретные ячейки, по которым при щелчке будет отображаться календарь. Выполните следующие действия.
7. Дважды щёлкните имя листа, содержащего ячейки, по которым будет выполняться щелчок для отображения календаря, в области Проект слева, затем скопируйте и вставьте приведённый ниже код VBA в окно Код. См. снимок экрана:
VBA code: Click cell to pop up calendar
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (Target.Count = 1) Then
If Not Intersect(Target, Range("A2:A10")) Is Nothing Then UserForm1.Show
End If
End Sub Примечание: в коде A2:A10 — это диапазон ячеек, по которым нужно щёлкнуть, чтобы отобразить календарь. При необходимости измените этот диапазон.

8. Нажмите одновременно клавиши Alt+Q, чтобы закрыть окно Microsoft Visual Basic для приложений.
Теперь при щелчке по любой ячейке в пределах ограниченного диапазона на текущем листе появится календарь, как показано на снимке экрана ниже. Выбранная в нём дата автоматически вставится в выделенную ячейку.

Отображение календаря при щелчке по определённой ячейке с помощью кода VBA
В этом разделе представлена утилита Выбор даты из Kutools для Excel. После включения этой функции при щелчке по ячейке с датой справа от неё появится значок календаря, с помощью которого можно легко заменить существующую дату новой. Следуйте приведённым ниже шагам, чтобы применить эту функцию.
1. Выберите пункты Kutools > Содержимое > Включить Выбор даты.

2. После активации этой функции щелкните по ячейке с датой — справа от неё появится значок календаря.

3. Щёлкните значок календаря, чтобы открыть диалоговое окно Выбор даты, затем выберите новую дату для замены текущей в выделенной ячейке.

Примечания:
Кнопка «Отмена»: нажмите эту кнопку, чтобы отменить замену даты;
Кнопка «Закрыть»: нажмите эту кнопку, чтобы закрыть диалоговое окно Выбор даты;- Эта функция работает только с ячейками, содержащими дату.
Если вы хотите воспользоваться бесплатной пробной версией (30 дней) этой утилиты, нажмите, чтобы скачать её, а затем выполните операцию в соответствии с приведёнными выше шагами.
Связанные статьи:
- Как запустить макрос при щелчке по определённой ячейке в Excel?
- Как изменить цвет ячейки при щелчке или выделении в Excel?
- Как отобразить всплывающее окно с сообщением при щелчке по определённой ячейке в Excel?
- Как отключить кнопку в Excel после её однократного нажатия?
- Как отключить контекстное меню, вызываемое щелчком правой кнопки мыши по ярлыку листа в Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек
Кнопка «Отмена»: нажмите эту кнопку, чтобы отменить замену даты;
Кнопка «Закрыть»: нажмите эту кнопку, чтобы закрыть диалоговое окно Выбор даты;