Funkcja CDate Excel VBA

Czy słyszałeś o funkcji lub poleceniu, za pomocą którego możemy przekonwertować cokolwiek na datę i godzinę? Tak, wraz z funkcją Data mamy funkcję CDate w VBA, która to robi. CDate jest funkcją programu Excel, ale można to również zrobić w VBA. CDate konwertuje wszystko oprócz standardowego formatu daty. Można to również wykorzystać do przeliczania czasu wraz z datą.

Składnia CDate jest najłatwiejszą składnią, jaką kiedykolwiek widzieliśmy. CDate uwzględnia tylko dane wejściowe takie jak data i godzina w dowolnym formacie. Poniżej znajduje się jego składnia.

Musimy tylko podać dowolną liczbę, datę lub godzinę w dowolnym formacie, który mamy, a CDate automatycznie przekonwertuje to na standardowy format daty i godziny.

Jak korzystać z funkcji CDate Excel VBA?

Nauczymy się korzystać z funkcji CDate VBA z kilkoma przykładami w Excelu.

Możesz pobrać ten szablon Excelate CD VBA tutaj - Szablon Excelate CD VBA

CDate VBA - Przykład 1

Najpierw weźmy prosty przykład. W tym przykładzie spróbujemy przekonwertować jeden prosty typ daty na standardowy format, który faktycznie jest domyślnie wbudowany w program Excel.

Wykonaj poniższe czynności, aby użyć funkcji CDate w VBA.

Krok 1: Otwórz moduł dostępny na karcie menu Wstaw, jak pokazano poniżej.

Krok 2: Teraz napisz podprocedurę Vate CDate pod dowolną nazwą, jak pokazano poniżej. Ale zaleca się zapisywanie nazwy podprocedury głównie w imieniu wykonywanej pracy.

Kod:

 Sub VBA_CDate () End Sub 

Krok 3: Teraz zadeklaruj zmienną powiedzmy, że jest Input1 jako String . Traktując typ danych jako String, ponieważ będziemy cytować dane wejściowe w kombinacji liczb i alfabetów.

Kod:

 Sub VBA_CDate () Dim Input1 As String End Sub 

Krok 4: Teraz zadeklarujemy inną zmienną, za pomocą której zobaczymy wynik. Ta zmienna zostanie wykorzystana do wyświetlenia dat.

Kod:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date End Sub 

Krok 5: Teraz wybierz dowolną datę, która jest kombinacją cyfr i alfabetów, i wpisz cudzysłowy w przecinkach, jak pokazano poniżej.

Kod:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = „1 września 2019” End Sub 

Krok 6: Aby przekonwertować datę wejściową na standardowy format, użyjemy funkcji CDate, jak pokazano poniżej ze zmienną FormatDate, która została zadeklarowana powyżej. I użyj wartości zapisanej w zmiennej Input1.

Kod:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = „1 września 2019” FormatDate = CDate (Input1) End Sub 

Krok 7: Aby zobaczyć wynik, użyjemy Msgbox, aby przypisać go do funkcji FormatDate daty.

Kod:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = „1 września 2019” FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Krok 8: Teraz uruchom kod, naciskając klawisz F5 lub klikając przycisk Play. Otrzymamy datę, którą wybraliśmy jako 1 września 2019 r., Teraz została przekonwertowana na standardowy format daty na 9/1/2019, jak pokazano poniżej.

Możemy wypróbować różne kombinacje dat, które naprawdę istnieją i zobaczyć, jaki rodzaj standardowego wyjścia otrzymujemy.

CDate VBA - Przykład 2

W tym przykładzie zobaczymy różne rodzaje dat i godzin, które istnieją oraz jaki rodzaj danych wyjściowych uzyskalibyśmy podczas korzystania z Vate CDate. W tym celu wykonaj następujące czynności:

Krok 1: Napisz podprocedurę CDate VBA, jak pokazano poniżej.

Kod:

 Sub VBA_CDate2 () End Sub 

Krok 2: Teraz zadeklarujemy 3-4 różne zmienne typu danych Data. Zadeklarujmy pierwszą zmienną jako Date1 i nadajmy jej typ danych jako Date, jak pokazano poniżej.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date End Sub 

Krok 3: Teraz przypisz dowolny numer, który chcemy przekonwertować na format daty. Wybraliśmy liczbę losową jako 12345.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = „12345” End Sub 

Krok 4: W podobny sposób zdefiniuj inną zmienną Date2 jako typ daty Date, jak pokazano poniżej.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Krok 5: Teraz ponownie w zmiennej Date2, rozważ ustawienie daty w dowolnym formacie. Tutaj zachowaliśmy datę 12/3/45.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = „12345” Dim Date2 As Date Date2 = „12/3/45” End Sub 

Krok 6: Ponadto ponownie zadeklarujemy inną zmienną Date3 jako Date.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date End Sub 

Krok 7: Tutaj przypiszemy wartość dowolnego czasu, jak pokazano poniżej, jako 12:10 w formacie 24-godzinnym.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = „12345” Dim Date2 As Date Date2 = „12/3/45” Dim Date3 As Date Date3 = „00:10:00” End Sub 

Krok 8: Teraz wreszcie zadeklarujemy inną zmienną Date4 jako Date.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date End Sub 

Krok 9: I tutaj podamy pewną wartość dziesiętną, taką jak 0, 123 lub możesz wybrać dowolną wartość zgodnie z wymaganiami.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Teraz są 2 sposoby, aby zobaczyć wynik wartości przechowywanych w różnych zmiennych zadeklarowanych powyżej. MsgBox pozwoli nam zobaczyć wszystkie wartości jednocześnie, ale użycie Debug.print pozwoli nam zobaczyć wszystkie dane wyjściowe za jednym razem.

Krok 10: Więc tutaj lepiej jest wybrać Debugowanie. Wydrukuj jak pokazano poniżej. I w tym samym wierszu przypisz wszystkie zmienne, zaczynając od daty 1 do daty 4.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Debugowanie. Drukuj Data 1, Data 2, Data 3, Data 4 Koniec Sub 

Krok 11: Aby zobaczyć wynik, użyjemy natychmiastowego okna, jak pokazano poniżej. Aby uzyskać do tego dostęp, przejdź do karty menu Widok i wybierz Natychmiastowe okno, jak pokazano poniżej.

Krok 12: Teraz uruchom kod, naciskając klawisz F5 lub klikając przycisk Play. Zobaczymy, data typu danych dała nam wynik, ale nie jest w standardowym formacie danych.

Krok 13: Aby uzyskać standardowe dane, użyjemy tutaj również CDate. Przydzielimy więc CDate dla każdej daty i godziny, których użyliśmy dla różnych zmiennych, jak pokazano poniżej.

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate („12345”) Dim Date2 As Date Date2 = CDate („12/3/45”) Dim Date3 As Date Date3 = CDate („00:10:00”) Dim Date4 Data Data 4 = CDate („0.123”) Debugowanie. Wydruk daty 1, Data 2, Data 3, Data 4 Koniec Sub 

Krok 14: Teraz uruchom kod, naciskając klawisz F5 lub klikając przycisk Play.

Zobaczymy, że dane wyjściowe zarówno Data, jak i CDate są takie same, ale istnieje podstawowa wspólna różnica między nimi obiema. Oznacza to, że CDate może konwertować dowolny typ liczb na standardowy format daty.

Krok 15: Wypróbujmy dowolny tekst lub alfabet z CDate i zobaczmy, co otrzymamy. Wprowadziliśmy więc losowy tekst jako abc w zmiennej Date4 .

Kod:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate („12345”) Dim Date2 As Date Date2 = CDate („12/3/45”) Dim Date3 As Date Date3 = CDate („00:10:00”) Dim Date4 Data Data 4 = CDate („abc”) Debugowanie. Wydruk daty 1, Data 2, Data 3, Data 4 Koniec Sub 

Krok 16: Teraz uruchom ponownie kod. Otrzymamy okno komunikatu z komunikatem o błędzie jako Niezgodność typu . Wynika to z faktu, że CDate nie może czytać i konwertować tekstu na standardowy format daty i godziny.

Plusy i minusy funkcji CDate Excel VBA

  • Może to przekonwertować dowolną datę lub godzinę na standardowy format zgodnie z wymaganiami.
  • VBA CDate interpretuje dowolną liczbę jako wartość Data, a następnie konwertuje ją na standardowy format.
  • Nie może interpretować i konwertować tekstu na format daty.

Rzeczy do zapamiętania

  • CDate może traktować liczby tylko jako dane wejściowe, ale liczba ta może być w dowolnym formacie.
  • Wartości tekstowej nie można przekonwertować.
  • Jeśli podamy godzinę lub datę, która jest już w standardowym formacie, ponownie zwróci tę samą wartość, co wynik.
  • Funkcja daty i CDate działa w ten sam sposób. Natomiast przez CDate możemy konwertować zarówno datę, jak i godzinę.

Polecane artykuły

Jest to przewodnik po funkcji Vate CDate. Tutaj omawiamy, jak korzystać z funkcji CDate w programie Excel za pomocą kodu VBA, a także praktyczne przykłady i szablon programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Format daty VBA
  2. Funkcja Excel DATEDIF
  3. VBA DateSerial
  4. Funkcja Excel DATEDIF

Kategoria: