Ciąg VBA do tej pory

Ciąg VBA programu Excel do tej pory

W VBA istnieje metoda, za pomocą której możemy przekonwertować dany ciąg na datę, a metoda ta jest znana jako funkcja CDATE w VBA, jest to funkcja wbudowana w VBA, a części wymagane do tej funkcji to najpierw przekonwertowanie ciągu na liczbę, a następnie konwertujemy podaną liczbę na datę. Format wyniku zależy tylko od formatu daty systemowej.

Jednym z typowych problemów, z którymi wszyscy spotykamy się w programie Excel, jest „Data i czas” i często są one przechowywane jako wartości tekstowe i początkowo pozostają niezauważone. Ale kiedy będą musieli wykorzystać ten czas, dowiemy się, że te wartości są przechowywane jako tekst i w ogóle nie wiemy, jak sobie z nimi radzić. „Data i godzina” to dwie połączone rzeczy w jednym elemencie, ale po zapisaniu tych wartości jako wartości tekstowych trudno jest z nimi pracować.

Jak przekonwertować wartości ciągów na datę?

Możesz pobrać ten ciąg VBA do daty szablonu Excel tutaj - ciąg VBA do daty szablonu Excel

Przykład 1

Po zadeklarowaniu zmiennej VBA i przypisaniu jej jako String, wszystko przypisane do tej zmiennej będzie traktowane tylko jako ciąg. Na przykład spójrz na poniższy kod.

Kod:

 Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub 

W powyższej zmiennej kodu „k” zdefiniowano jako typ danych „String” i dla tej zmiennej przypisaliśmy wartość „10-21”.

Ok, uruchommy kod i zobaczmy, co otrzymamy w oknie komunikatu w VBA.

Otrzymaliśmy tylko wartość 10-21, ale zwykle są to daty, a nie wartości łańcuchowe. Tak więc, mimo że przypisanym typem danych jest „String”, nadal możemy konwertować dane do daty za pomocą funkcji konwersji typu danych CDATE VBA.

Kod:

 Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub 

W powyższym, zanim pokażemy wynik zmiennej „k” w oknie komunikatu, przypisaliśmy funkcję CDATE. Dokonano niewielkiej korekty, zobaczmy, jak duży będzie to wpływ.

Teraz zobaczylibyśmy wynik jako „Data”, a nie jako wartość „Ciągu”.

Przykład nr 2

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

Kod:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub 

W tym momencie powyższy kod pokaże wynik jako „43599”, jak przypisaliśmy powyżej.

Ale kiedy użyjemy funkcji CDATE, zostanie ona przekonwertowana na wartość daty.

Kod:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub 

Wynik po zastosowaniu funkcji CDATE jest następujący.

Ponieważ program Excel zapisał datę jako numery seryjne, przypisany nam numer seryjny 43599 jest równy dacie 05/14/2019, kiedy zostanie zastosowany format daty.

Możemy również zastosować format do daty jako „DD-MMM-RRRR”, aby dokładnie odczytać datę.

Kod:

 Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-RRRR") End Sub 

W powyższym zadeklarowałem jedną dodatkową zmienną do przechowywania wyniku. Dla tej zmiennej zastosowałem funkcję konwersji CDATE.

Następnie użyłem funkcji FORMAT, aby zastosować format „DD-MMM-RRRR”, a wynik będzie taki, jak pokazano poniżej.

Dzięki temu możemy wyraźnie odczytać porę dnia i część miesiąca. Zależy to również od formatu daty systemowej w programie Excel, ponieważ mój systemowy format daty to „MM-DD-RRRR”. Tak było, ale to nie powinno przeszkadzać w formatowaniu.

Przykład nr 3

Teraz zobaczymy, jak daty są formatowane jako wartości tekstowe w komórkach arkusza. Poniżej znajduje się obraz dat przechowywanych jako tekst w arkuszu.

W kolumnie A od A2 do A12 mamy wartości wyglądające na datę, ale kiedy patrzymy na zakładkę formatu, pokazuje ona format „Tekst”. Teraz musimy przekonwertować te wartości z tekstu na datę.

Poniżej znajduje się kod, który napisałem, aby przekonwertować wartości dat sformatowane tekstowo na rzeczywiste daty.

Kod:

 Sub String_To_Date2 () Dim k As Long 'Dane znajdują się w więcej niż jednej komórce, więc należy zapętlić każdą komórkę' Open For Loop For k = 2 To 12 'Dane zaczynają się od drugiego wiersza i kończą w 12. wierszu, więc od 2 do 12 Cells (k, 2) .Value = CDate (Cells (k, 1) .Value) Next k End Sub 

Jeśli uruchomisz kod, otrzymasz poniższy wynik.

Rzeczy do zapamiętania

  • CDATE to funkcja konwersji typu danych, ale może być używana do konwersji przechowywanej daty ciągu VBA na rzeczywiste wartości daty.
  • Wynik formatu funkcji CDATE zależy tylko od systemowego formatu daty.
  • Daty są przechowywane jako numery seryjne w programie Excel, więc formatowanie jest wymagane, aby były wyświetlane jako daty.