Funkcja VBA CDATE

Funkcja CDATE w VBA

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

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, pokazuje 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 programie Excel VBA.

Możesz pobrać ten szablon VBA CDATE Excel tutaj - szablon VBA CDATE Excel

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 wykonam ten kod, zobaczymy tę samą wartość w oknie komunikatu w VBA.

Ale można to przekonwertować do tej pory za pomocą funkcji VBA CDATE. W tym celu zdefiniuj jeszcze jedną zmienną jako Data.

Kod:

 Dim k1 As Date 

Dla tej zmiennej „k1” przypisz funkcję CDATE i podaj 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ładniej wartości, którą podaliśmy, podaliśmy „25-12”, a nie 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. Tak więc ostateczne wyniki brzmią następująco: 25.12.2019, czyli 25 grudnia 2019.

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 numer seryjny, ale dla innej zmiennej „KResult” przekonwertowaliśmy tę wartość do tej pory za pomocą funkcji „CDATE”.

Ten sam wynik zmiennej „kResult” pokazany 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, pokazał 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 (Wartość1) MsgBox CDate (Wartość2) 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.