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 datZałóż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.