Przejdź do głównej zawartości

Jak wyświetlić kalendarz po kliknięciu określonej komórki w programie Excel?

Przypuśćmy, że w arkuszu znajduje się zakres kolumn, w którym trzeba często wprowadzać i zmieniać daty, ale nudzi się ręczne wprowadzanie lub zmienianie daty. Jak szybko wprowadzać daty bez ręcznego wpisywania w zakresie kolumn? W tym artykule mowa jest o wyświetlaniu kalendarza po kliknięciu komórek w określonym zakresie, a następnie o automatycznym wstawieniu daty do wybranej komórki po wybraniu daty w kalendarzu.


Wyświetl kalendarz po kliknięciu określonej komórki z kodem VBA

Proszę rozwiązać ten problem w następujący sposób, krok po kroku.

Note: Ta metoda działa tylko w 32-bitowym programie Microsoft Excel.

Krok 1: Utwórz formularz użytkownika z kalendarzem

Utwórz formularz użytkownika zawierający kalendarz, który pojawi się po kliknięciu komórki.

1. naciśnij inny + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.

2. w Microsoft Visual Basic for Applications okno, kliknij wstawka > UserForm.

3. Następnie a UserForm oraz Toolbox wyskakują okna, w Toolbox, kliknij dowolną kontrolkę i kliknij prawym przyciskiem, a następnie wybierz Dodatkowe sterowanie z menu po kliknięciu prawym przyciskiem myszy. Zobacz zrzut ekranu:

4. w Dodatkowe sterowanie w oknie dialogowym, przewiń w dół, aby zaznaczyć Kontrolka Microsoft MonthView opcja w Dostępne sterowanie a następnie kliknij OK przycisk.

5. Następnie możesz zobaczyć plik Widok miesiąca przycisk zostanie dodany w Toolbox okno. Kliknij ten przycisk MonthView, a następnie kliknij okno UserForm1, aby utworzyć kalendarz w formularzu użytkownika.

Note: Możesz dostosować rozmiar okna UserForm, aby dopasować go do wstawionego kalendarza, przeciągając obramowanie UserForm.

6. Kliknij dwukrotnie wstawiony kalendarz w UserForm1 oraz w Code oknie, zamień oryginalny kod na następujący skrypt 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

Note: Ten kod może pomóc wstawić datę do wybranej komórki po wybraniu daty z kalendarza.

Krok 2: Aktywuj kalendarz po kliknięciu komórki

Teraz musisz określić określone komórki, aby wyświetlić kalendarz po kliknięciu. Wykonaj następujące czynności.

7. Kliknij dwukrotnie nazwę arkusza zawierającego komórki, które klikniesz, aby wyświetlić kalendarz po lewej stronie Projekty okienko, a następnie skopiuj i wklej poniższy kod VBA do okna Code. Zobacz zrzut ekranu:

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

Note: w kodzie A2: A10 to komórki, które klikniesz, aby wyświetlić kalendarz. Zmień zakres komórek według potrzeb.

8. naciśnij inny + Q klawisze jednocześnie, aby zamknąć Microsoft Visual Basic for Applications okno.

Odtąd, po kliknięciu dowolnej komórki w określonym zakresie w bieżącym arkuszu roboczym, pojawi się kalendarz, jak pokazano na zrzucie ekranu. Data zostanie wstawiona automatycznie do wybranej komórki po wybraniu daty z kalendarza.


Wyświetl kalendarz po kliknięciu określonej komórki z kodem VBA

W tej sekcji przedstawiono Selektor dat użyteczność Kutools dla programu Excel. Po włączeniu tej funkcji, kliknij komórkę daty, aby wyświetlić kalendarz, możesz łatwo zastąpić istniejącą datę nową datą. Aby zastosować tę funkcję, wykonaj poniższe czynności.

1. kliknij Kutools > Treść > Włącz selektor dat.

2. Po włączeniu tej funkcji kliknij komórkę z datą, a ikona kalendarza pojawi się bezpośrednio przy komórce.

3. Kliknij ikonę kalendarza, aby otworzyć plik Selektor dat okno dialogowe, a następnie kliknij nową datę, aby zastąpić datę w wybranej komórce.

Uwagi:

  • Przycisk Cofnij: kliknij ten przycisk, aby cofnąć zamianę daty;
  • Przycisk Zamknij: kliknij ten przycisk, aby zamknąć okno dialogowe Selektor dat;
  • Ta funkcja może dotyczyć tylko komórek zawierających datę.

  Jeśli chcesz mieć bezpłatną wersję próbną (30 dni) tego narzędzia, kliknij, aby go pobrać, a następnie przejdź do wykonania operacji zgodnie z powyższymi krokami.


Powiązane artykuły:

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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