VBA CDATE - Jak korzystać z CDATE w Excel VBA? (z przykładami)

Spisie treści

Funkcja CDATE w VBA

VBA CDATE to funkcja konwersji typu danych, która konwertuje typ danych, który jest tekstem lub ciągiem znaków, na typ danych daty. Gdy wartość zostanie przekonwertowana na typ danych data, możemy bawić się rzeczami związanymi z datą.

Składnia CDATE

Poniżej znajduje się składnia funkcji CDATE w języku VBA.

Wyrażenie: Wyrażenie może być ciągiem znaków lub wartością tekstową albo zmienną zawierającą wartość do przekonwertowania na typ danych daty.

CDATE identyfikuje format daty i godziny na komputerze, na którym pracujemy i konwertuje podaną wartość na ten sam typ danych daty. Jeśli podasz tylko dzień i miesiąc i zignorujesz rok, funkcja CDATE pobierze rok systemowy, pokaże wraz z podanym dniem i miesiącem.

W poniższej sekcji zobaczymy coraz więcej przykładów.

Jak korzystać z funkcji CDATE w Excel VBA?

Przykłady funkcji CDATE w Excel VBA.

Przykład 1

Zanim pokażę Ci przykład CDATE, spójrz najpierw na poniższy kod.

Kod:

Sub CDATE_Example1 () Dim k As String k = "25-12" MsgBox k End Sub

W powyższym przypadku zmiennej „k” przypisałem wartość „25-12”. Kiedy wykonuję ten kod, zobaczymy tę samą wartość w oknie komunikatu w VBA.

Ale można to przekonwertować na bieżąco za pomocą funkcji VBA CDATE, w tym celu zdefiniuj jeszcze jedną zmienną jako Data.

Kod:

Dim k1 As Date

W przypadku tej zmiennej „k1” przypisuje funkcję CDATE i dostarcza zmienną „k”, która przechowuje ciąg „25-12”. W oknie komunikatu pokaż zmienną wartość „k1” zamiast „k”.

Kod:

k1 = CDate (k)

Teraz uruchom kod i zobacz wynik w oknie komunikatu.

Wynik to „25.12.2019”.

Przyjrzyj się dokładnie wartości, którą dostarczyliśmy. Dostarczyliśmy „25-12”, nie dostarczyliśmy rok.

Podczas pisania tego artykułu bieżącym rokiem w moim systemie był rok 2019, więc VBA CDATE przekonwertował wartość ciągu „25-12” do tej pory i dodał do niej rok systemowy 2019. Więc ostateczne wyniki czytać jak ten 12/25/2019 czyli 25 -go grudnia 2019 r.

Przykład nr 2

Teraz spójrz na poniższy kod.

Kod:

Sub CDATE_Example2 () Dim k As Variant Dim kResult As Date k = 43889 kResult = CDate (k) MsgBox kResult End Sub

W powyższym kodzie dla zmiennej „k” zastosowałem liczbę „43889”. Wszyscy wiemy, że jest to liczba seryjna, ale dla innej zmiennej, „KResult”, przekonwertowaliśmy tę wartość do tej pory za pomocą funkcji „CDATE”.

Ten sam wynik zmiennej „KResult” jest wyświetlany w oknie komunikatu.

Uruchom kod i zobacz magię funkcji „CDATE”.

Pokazuje wynik jako „28.02.2020”. Jeśli nie znasz dat w programie Excel, musisz się zastanawiać, jak to się stało.

Na przykład wprowadź ten sam numer (43889) w jednej z komórek w arkuszu kalkulacyjnym.

W tym celu zastosuj format „DD-MM-RRRR”.

Teraz kliknij OK i zobacz wynik.

Teraz wynik zmienił się z dotychczasowego numeru seryjnego. Ponieważ zastosowaliśmy format daty nad numerem seryjnym, pokazuje on odpowiednią datę.

Oznacza to, że numer seryjny 43889 jest równy dacie 28-02-2020.

Więc w naszym kodzie VBA funkcja CDATE wykonała to samo, konwertując wartość ciągu na typ danych daty.

Przykład nr 3

Na przykład spójrz na poniższy kod.

Sub CDATE_Example3 () Dim Value1 Dim Value2 Dim Value3 Value1 = "24 grudnia 2019 r." Value2 = # 6/25/2018 # Value3 = "18:30:48 PM" MsgBox CDate (Value1) MsgBox CDate (Value2) MsgBox CDate ( Wartość3) End Sub

Po uruchomieniu tego kodu otrzymamy poniższe wyniki.

Tak więc wszystkie wartości są konwertowane na typ danych daty za pomocą funkcji CDATE.

Rzeczy do zapamiętania

  • CDATE konwertuje tylko liczby i wartości łańcuchowe na typ danych daty.
  • Jest to przydatne, gdy używamy go z innymi funkcjami.
  • Jeśli zostanie podana nieprawidłowa wartość typu danych, otrzymamy błąd niezgodności typu.
  • Ponieważ data i godzina są częścią numeru seryjnego, konwertuje zarówno czas, jak i właściwy czas.

Interesujące artykuły...