Selektor dat programu Excel - Jak wstawić selektor dat (kalendarz) w programie Excel?

Jak wstawić selektor dat w programie Excel?

Aby wstawić rozwijany kalendarz, użyjemy formantu ActiveX, którym jest „Formant selektora daty i godziny firmy Microsoft 6.0 (SP6)” .

Załóżmy, że musimy zachować dane pracowników firmy. Jest kilka takich pól

  • Emp Code
  • Nazwa Emp
  • Data dołączenia do Emp
  • Departament Emp

Aby wprowadzić dane w MS Excel, stworzyliśmy następujący format.

Aby wprowadzić datę dołączenia do Empiku, musimy stworzyć rozwijany kalendarz, aby ułatwić użytkownikowi wprowadzenie dat dołączenia.

Aby utworzyć rozwijany kalendarz, kroki podano poniżej -

Musimy wstawić „formant ActiveX” o nazwie „Microsoft Date and Time Picker Control 6.0 (SP6)” . Aby wstawić, użyjemy polecenia „Wstaw” w grupie „Elementy sterujące” w obszarze „Programista”.

Jeśli karta „Deweloper” nie jest widoczna, poniżej przedstawiono kroki, które należy wykonać, aby to samo było widoczne.

  • Krok 1: W menu „Plik” wybierz „Opcje”
  • Krok 2: Otworzy się okno dialogowe o nazwie „Opcje programu Excel” . Wybierz opcję „Dostosuj Wstążkę” z lewej krawędzi okna dialogowego. Pole wyboru zakładki „Programista” i kliknij przycisk „OK”.
  • Krok 3: Teraz widzimy kartę „Deweloper” na końcu wstążki.
  • Krok 4: Wybierz „Więcej formantów” z formantów ActiveX.
  • Krok 5: Wybierz „Microsoft Date and Time Picker Control 6.0 (SP6)” z listy i kliknij „OK”.
  • Krok 6: Kliknij w dowolnym miejscu arkusza, aby utworzyć rozwijany kalendarz.
  • Krok 7: Kliknij prawym przyciskiem myszy „Date Picker” i wybierz „Właściwości” z listy.
  • Krok 8: Zmień wartość z „False” na „True” dla właściwości „CheckBox”, aby można było również akceptować wartości null. Zamknij okno dialogowe „Właściwości” .
  • Krok 9: Ponownie kliknij prawym przyciskiem myszy selektor dat i wybierz „Wyświetl kod” z menu kontekstowego.
  • Krok 10: W „Visual Basic Editor” widzimy, że jakiś kod jest już napisany. Zastąp kod następującym kodem.

Kod:

Private Sub Worksheet_SelectionChange (ByVal Target As Range) With Sheet1.DTPicker1 .Height = 20 .Width = 20 If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True .Top = Target.Top. Left = Target.Offset (0, 1) .Left .LinkedCell = Target.Address Else .Visible = False End If End With End Sub
  • Krok 11: Pierwsza instrukcja w kodzie mówi kompilatorowi MS Excel, aby uruchomił kod za każdym razem, gdy zostanie wybrana nowa komórka (wybór zostanie zmieniony). Wybrana komórka jest wysyłana do procedury podrzędnej jako „Cel”.
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
  • Krok 12: Te stwierdzenia ustawiają wysokość i szerokość Date Picker na 20 punktów w programie Excel. Można zauważyć, że użyliśmy operatora „With” , dzięki czemu nie musimy wielokrotnie odwoływać się do DTPicker1 .
 Z Sheet1.DTPicker1 .Height = 20 .Width = 20
  • Krok 13: Następująca klauzula „Jeśli” określa kryteria, zgodnie z którymi w przypadku wybrania dowolnej komórki w kolumnie „C” widoczność uzyskuje tylko selektor dat. Użyliśmy funkcji „Intersect”, ponieważ ta funkcja sprawdza, czy wybraliśmy dowolną komórkę w kolumnie C, a następnie ta funkcja zwróci adres; w przeciwnym razie wartość byłaby zerowa.
If Not Intersect (Target, Range ("C: C")) Is Nothing Then .Visible = True
  • Krok 14: Właściwość „Top” selektora dat jest równa wartości właściwości „Top” wybranej komórki. Oznacza to, że będzie to pasowało do górnej granicy wybranej komórki.
.Top = Target.Top
  • Krok 15: Ta instrukcja ustawia lewą właściwość selektora dat jako równą właściwości następnej prawej komórki wybranej komórki (odległość lewej krawędzi kolumny D od skrajnej lewej strony arkusza). Aby uzyskać odwołanie do następnej prawej komórki, użyliśmy funkcji „Przesunięcie” z 0 jako argumentem wiersza i 1 jako argumentem kolumny, ponieważ spowoduje to odniesienie do komórki w następnej kolumnie.
.Left = Target.Offset (0, 1) .Left
  • Krok 16: Ta instrukcja łączy selektor dat z komórką docelową, dzięki czemu dowolna wartość zostanie wybrana w rozwijanym kalendarzu wyświetlanym w komórce.
.LinkedCell = Target.Address
  • Krok 17: Instrukcja „Else” mówi kompilatorowi, aby nie wyświetlał selektora dat, gdy wybrana jest dowolna komórka z wyjątkiem tej w kolumnie C.
Else .Visible = False
  • Krok 18: W końcu zamykamy „Jeśli”.
Zakończ, jeśli
  • Krok 19: W końcu musimy zakończyć „Za pomocą”.
Kończyć z
  • Krok 20: Teraz procedura podrzędna zostanie zakończona.
Napis końcowy

Upewnij się, że zapisujemy plik z rozszerzeniem „.xlsm”, ponieważ zapisuje on napisany przez nas kod VBA i będziemy mogli uruchomić ten kod, gdy wybrana zostanie dowolna komórka w kolumnie C.

Now, whenever we select any cell in the ‘C’ column, we can see a drop-down calendar at the top right corner of the selected cell. We can open the drop-down calendar by clicking on the down arrow symbol.

We need to click on any date in the calendar in the selected month to enter that date in the selected cell.

We can change month to previous or next using the arrow button placed at the left and right side of the calendar.

We can also click on the month to choose a month from the drop-down.

We can also change year by clicking on year and then using up and down arrows to choose the required one.

Things to Remember

  • ‘Microsoft Date and Time Picker Control 6.0 (SP6)’ is not available for the 64-bit version of MS Excel.
  • Po napisaniu kodu VBA, musimy zapisać plik z rozszerzeniem „.xlsm” (skoroszyt programu Excel z obsługą makr); w przeciwnym razie kod VBA nie działałby.

Interesujące artykuły...