Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

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

Отображение календаря при нажатии на конкретную ячейку с кодом VBA

Создание пользовательской формы с календарем

Активировать календарь при нажатии на ячейку


Выбор даты (легко выбрать дату с определенным форматом даты из календаря и вставить в выбранную ячейку):

щелчок Kutools > Вставить > Вставить дату, а в диалоговом окне «Вставить дату» укажите формат даты, дважды щелкните по определенной дате, чтобы вставить эту дату в выбранную ячейку неизмеримо. Смотрите скриншот ниже:

Kutools for Excel: с более чем 200 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни. Скачайте бесплатную пробную версию прямо сейчас!

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel переносит расширенные функции 300 в Excel и мгновенно повышает производительность
  • Super Formula Bar (легко редактировать несколько строк текста и формул); Чтение макета (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон ...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объединить дублирующиеся строки и сумму / среднее ... Предотвратить повторяющиеся клетки; Сравнить диапазоны ...
  • Выберите Дублировать или Уникальные строки; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих книгах; Случайный выбор ...
  • Точное копирование нескольких ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставьте маркеры, флажки и многое другое ...
  • Любить и быстро вставлять формулы, диапазоны, графики и рисунки; Шифровать ячейки с помощью пароля; Создать список рассылки и отправлять электронные письма ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев ...
  • Суперфильтр (сохранение и применение схем фильтрации к другим листам); Расширенный Сортировать по месяцу / неделе / ​​дню, частоте и многому другому; Специальный фильтр жирным шрифтом, курсив ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разбить данные на несколько листов; Пакетное конвертирование xls, xlsx и PDF ...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.

Отображение календаря при нажатии на конкретную ячейку с кодом VBA


Пожалуйста, решите эту проблему следующим образом шаг за шагом.

Внимание: Этот метод может работать только с Microsoft 32-бит.

Создание пользовательской формы с календарем

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

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

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

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

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

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

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

6. Дважды щелкните по вставленному календарю в UserForm1, а в Код: окна, замените исходный код на следующий скрипт VBA.

Код VBA: создать пользовательскую форму с календарем

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

Внимание: Этот код может помочь вставить дату в выбранную ячейку после выбора даты из календаря.

Активировать календарь при нажатии на ячейку

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

7. Дважды щелкните имя листа, содержащее ячейки, на которые вы нажмете, чтобы открыть календарь слева проект затем скопируйте и вставьте код VBA ниже в окно кода. Смотрите скриншот:

Код VBA: выберите ячейку, чтобы открыть календарь

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 для приложений окна.

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


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


  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905
  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    DwarthK · 3 months ago
    Thank you so much! These directions were super useful :)
  • To post as a guest, your comment is unpublished.
    jeet · 5 months ago
    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?
    • To post as a guest, your comment is unpublished.
      crystal · 5 months ago
      Hi jeet,
      Follow the steps and replace the range "A2:A10" in the second VBA code with your column range (such as C2:E2).
  • To post as a guest, your comment is unpublished.
    Giuseppe · 6 months ago
    Salve il codice funziona benissimo, ma se volessi farlo funzionare anche su un altro foglio
  • To post as a guest, your comment is unpublished.
    Sam · 7 months ago
    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
    • To post as a guest, your comment is unpublished.
      crystal · 5 months ago
      Hi Sam,
      The code has been updated in the article with the problem solving. Please have a try and thank you for your comment.
  • To post as a guest, your comment is unpublished.
    cevat · 7 months ago
    tarihi seçebiliyorum ama a1:a10 hücrelerine seçtiğim tarih eklenmiyor. teşekkür ederim
  • To post as a guest, your comment is unpublished.
    MG · 1 years ago
    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.
    • To post as a guest, your comment is unpublished.
      Chris · 7 months ago
      Use i.e: Range("B6:C30")
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      Sorry I didn't got your question. Would be nice if you could provide screenshot of what you are trying to do.
  • To post as a guest, your comment is unpublished.
    George · 2 years ago
    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?
  • To post as a guest, your comment is unpublished.
    Sirimon · 2 years ago
    I want to show pop up calendar under the cell selected.How should I do?