Перейти к основному содержанию

Как открыть календарь при нажатии на определенную ячейку в Excel?

Предположим, что на листе есть диапазон столбцов, вам нужно часто вводить и изменять даты внутри, но скучно вводить или изменять дату вручную за раз. Как быстро вводить даты, не вводя вручную диапазон столбцов? В этой статье говорится о появлении календаря при нажатии на ячейки в определенном диапазоне, а затем о автоматической вставке даты в выбранную ячейку после выбора даты в календаре.


Вызов календаря при нажатии на определенную ячейку с кодом VBA

Решите эту проблему, как показано ниже.

Внимание: Этот метод работает только с 32-разрядной версией Microsoft Excel.

Шаг 1. Создайте пользовательскую форму с календарем

Пожалуйста, создайте UserForm, который содержит календарь, который вы увидите, щелкнув ячейку.

1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > UserForm.

3. Затем UserForm и еще один Ящик для инструментов окна всплывают, в Ящик для инструментов, щелкните любой элемент управления и щелкните правой кнопкой мыши, затем выберите Дополнительные элементы управления из контекстного меню. Смотрите скриншот:

4. в Дополнительные элементы управления диалоговом окне прокрутите вниз, чтобы проверить Элемент управления Microsoft MonthView вариант в Доступные элементы управления поле, а затем щелкните OK .

5. Затем вы увидите МесяцПросмотр кнопка добавлена ​​в Ящик для инструментов окно. Пожалуйста, нажмите эту кнопку MonthView, а затем щелкните окно UserForm1, чтобы создать Календарь в Userform.

Внимание: Вы можете настроить размер окна UserForm в соответствии с вставленным календарем, перетащив границу UserForm.

6. Дважды щелкните вставленный календарь в UserForm1 и в Code окна, замените исходный код следующим сценарием 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. Нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

С этого момента при щелчке по любой ячейке в указанном диапазоне на текущем листе появится календарь, как показано ниже. И дата будет автоматически вставлена ​​в выбранную ячейку после выбора даты в календаре.


Вызов календаря при нажатии на определенную ячейку с кодом VBA

В этом разделе представлены Выбор даты полезности Kutools for Excel. После включения этой функции щелкните ячейку даты, чтобы открыть календарь, вы можете легко заменить существующую дату на новую дату. Чтобы применить эту функцию, выполните следующие действия.

1. Нажмите Кутулс > Содержание > Включить средство выбора даты.

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

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

Ноты:

  • Кнопка отмены: нажмите эту кнопку, чтобы отменить дату замены;
  • Кнопка «Закрыть»: нажмите эту кнопку, чтобы закрыть диалоговое окно «Выбор даты»;
  • Эта функция может применяться только к ячейкам, содержащим дату.

  Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Статьи по теме:

Лучшие инструменты для офисной работы

🤖 Kutools AI Помощник: Революционный анализ данных на основе: Интеллектуальное исполнение   |  Генерировать код  |  Создание пользовательских формул  |  Анализ данных и создание диаграмм  |  Вызов функций Kutools...
Популярные опции: Найдите, выделите или определите дубликаты   |  Удалить пустые строки   |  Объедините столбцы или ячейки без потери данных   |   Раунд без формулы ...
Супер поиск: Множественный критерий VLookup    VLookup с несколькими значениями  |   VLookup по нескольким листам   |   Нечеткий поиск ....
Расширенный раскрывающийся список: Быстрое создание раскрывающегося списка   |  Зависимый раскрывающийся список   |  Выпадающий список с множественным выбором ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка Фокус   |  Просмотр дизайна   |   Большой Формулный Бар    Менеджер книг и листов   |  Библиотека ресурсов (Авто текст)   |  Выбор даты   |  Комбинировать листы   |  Шифровать/дешифровать ячейки    Отправлять электронные письма по списку   |  Суперфильтр   |   Специальный фильтр (фильтровать жирным шрифтом/курсивом/зачеркиванием...) ...
15 лучших наборов инструментов12 Текст Инструменты (Добавить текст, Удалить символы, ...)   |   50+ График Тип (Диаграмма Ганта, ...)   |   40+ Практических Формулы (Рассчитать возраст по дню рождения, ...)   |   19 Вносимые Инструменты (Вставить QR-код, Вставить изображение из пути, ...)   |   12 Конверсия Инструменты (Числа в слова, Конверсия валюты, ...)   |   7 Слияние и разделение Инструменты (Расширенные ряды комбинирования, Разделить клетки, ...)   |   ... и более

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Comments (18)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I am not seeing the Microsoft MonthView Control in the listing, but it may be as Pete (#32847) mentioned that this will not work in Office 365 or 64-bit Microsoft Office.
This comment was minimized by the moderator on the site
Hi Teagan Caudle,
I searched and tried the methods suggested in google, but ultimately could not register the MonthView control in Microsoft 365.
Sorry for the inconvenience. Maybe you can check this out.
https://social.technet.microsoft.com/Forums/Azure/en-US/db3b4dff-aad7-4d88-87cc-8f3f117be550/microsoft-windows-common-controls-60-for-office-2016
This comment was minimized by the moderator on the site
There is no Microsoft MonthView Control listed (Office 365), and the directions here doesn't explain how one would get that control, so this is pretty much useless unless you're using an older version of Excel.
This comment was minimized by the moderator on the site
The calendar will show up but when I click on the date, the cell doesn't populate
This comment was minimized by the moderator on the site
Hi,
The code works well in my case. Which Excel version are you using?
This comment was minimized by the moderator on the site
Thank you so much! These directions were super useful :)
This comment was minimized by the moderator on the site
Hi, Is it possible to put the date picker pop-up for multiple column, as in my sheet I have "start date", "end date" and "agreement date". if yes then how?
This comment was minimized by the moderator on the site
Hi jeet,
Follow the steps and replace the range "A2:A10" in the second VBA code with your column range (such as C2:E2).
This comment was minimized by the moderator on the site
Salve il codice funziona benissimo, ma se volessi farlo funzionare anche su un altro foglio
This comment was minimized by the moderator on the site
if i try to select a row, the pop up will activate and the date appears in each cell in that row


how can i avoid this
This comment was minimized by the moderator on the site
Hi Sam,
The code has been updated in the article with the problem solving. Please have a try and thank you for your comment.
This comment was minimized by the moderator on the site
tarihi seçebiliyorum ama a1:a10 hücrelerine seçtiğim tarih eklenmiyor. teşekkür ederim
This comment was minimized by the moderator on the site
Hello everyone,

Can anyone tell me how to popup a calendar in a range of cells, but starting only from the cell right bellow a table header and down bellow in an excel column.


Thank you in advance.
This comment was minimized by the moderator on the site
Use i.e: Range("B6:C30")
This comment was minimized by the moderator on the site
Good Day,
Sorry I didn't got your question. Would be nice if you could provide screenshot of what you are trying to do.
This comment was minimized by the moderator on the site
Use i.e: Range("B6:C30")
This comment was minimized by the moderator on the site
i used these VBA codes and everthing's fine so far. The range is A2:A10 and calendar pops up when you select a cell into it. But if you mark row from 2 to 10 again the calendar pops again. It's the same with column "A" if you mark it, again the calendar pops. How should i proceed, in order to get the calendar only in the range i've defined?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations