Selektor dat programu 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)” .

Możesz pobrać ten szablon programu Excel do wybierania dat - szablon programu Excel do wybierania dat

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 dla zakładki „Deweloper” i kliknij „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 z listy „Microsoft Date and Time Picker Control 6.0 (SP6)” 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 część kodu jest już napisana. Zastąp kod następującym kodem.

Kod:

 Private Sub Worksheet_SelectionChange (ByVa l 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 instrukcje 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ść będzie 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ść jest 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”
 Koniec, 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 po wybraniu dowolnej komórki w kolumnie C.

Teraz za każdym razem, gdy wybierzemy dowolną komórkę w kolumnie „C”, w prawym górnym rogu wybranej komórki zobaczymy rozwijany kalendarz. Możemy otworzyć rozwijany kalendarz, klikając symbol strzałki w dół.

Musimy kliknąć dowolną datę w kalendarzu w wybranym miesiącu, aby wprowadzić tę datę w wybranej komórce.

Miesiąc można zmienić na poprzedni lub następny za pomocą przycisku ze strzałką umieszczonego po lewej i prawej stronie kalendarza.

Możemy również kliknąć miesiąc, aby wybrać miesiąc z listy rozwijanej.

Możemy również zmienić rok, klikając rok, a następnie za pomocą strzałek w górę iw dół, aby wybrać wymagany.

Rzeczy do zapamiętania

  • „Microsoft Date and Time Picker Control 6.0 (SP6)” nie jest dostępna dla 64-bitowej wersji programu 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 zadziała.