Data formatu VBA

Data w formacie Excel VBA

Aby sformatować datę w VBA , używamy wbudowanej funkcji FORMAT, która przyjmuje dane wejściowe jako format daty i zwraca żądany wymagany format, argumenty wymagane dla tej funkcji to samo wyrażenie i typ formatu.

Formatowanie daty i czasu to wrażliwe rzeczy w programie Excel i to samo dotyczy również VBA. Domyślna data i godzina są oparte na dacie systemowej, w której pracujemy, która może się różnić w zależności od systemu. W tym artykule pokażemy różne techniki formatowania dat za pomocą kodów VBA.

Aby zmienić format daty za pomocą kodowania VBA, musimy być świadomi, jakie są formaty daty i jaki ma wpływ na datę.

Poniższa tabela przedstawia różne formatowanie dat i ich kody.

Jeśli więc weźmiesz pod uwagę powyższy wykres, formatowanie daty za pomocą kodowania VBA wcale nie jest trudnym zadaniem.

Jak zmienić format daty w VBA?

Poniżej znajdują się przykłady formatu daty VBA w programie Excel.

Możesz pobrać ten szablon Excel z datą w formacie VBA tutaj - Szablon programu Excel z datą w formacie VBA

Przykład 1

Na przykład mamy tę samą datę w wielu komórkach arkusza, jak pokazano poniżej.

Teraz zastosujemy różne formaty dat dla tej samej daty, aby zobaczyć wpływ różnych kodów formatu daty.

Najpierw skopiuj te same dane do następnej kolumny, aby zobaczyć wpływ.

Dla pierwszej daty, czyli komórki A1, zastosujemy format „DD-MM-RRRR” .

W kodzie najpierw musimy zaznaczyć komórkę za pomocą obiektu RANGE .

Kod:

 Sub Date_Format_Example1 () Range („A1”) End Sub 

Ponieważ zmieniamy format daty w komórce, musimy uzyskać dostęp do właściwości „ Format liczb ” obiektu RANGE.

Kod:

 Sub Date_Format_Example1 () Range ("A1"). NumberFormat End Sub 

Po wejściu do „ Format liczb ” musimy ustawić format liczb, umieszczając znak równości i zastosować kod formatu w podwójnych cudzysłowach.

Kod:

 Sub Date_Format_Example1 () Range („A1”). NumberFormat = „dd-mm-yyy” 'Spowoduje to zmianę daty na „23-10-2019” End Sub 

Kiedy wykonamy ten kod, zastosuje on format liczbowy do komórki A1 jako „ DD-MM-RRRR ”.

Wynik:

Przykład nr 2

Podobnie zastosowałem różne kody formatowania również dla innych komórek, a poniżej znajduje się kod VBA dla Ciebie.

Kod:

Sub Date_Format_Example2 () Range („A1”). NumberFormat = „dd-mm-yyy” 'Spowoduje to zmianę daty na „23-10-2019” Range („A2”). NumberFormat = „ddd-mm-yyy” „Spowoduje to zmianę daty na„ Śr-10-2019 ”Zakres („ A3 ”). NumberFormat =„ dddd-mm-rrrr ”„ Spowoduje to zmianę daty na „Środa-10-2019” Zakres („A4”) .NumberFormat = "dd-mmm-rrr" 'Spowoduje to zmianę daty na „23-październik-2019” Zakres („A5”). NumberFormat = „dd-mmmm-rrr” „Spowoduje to zmianę daty na„ 23- Październik-2019 „Zakres („ A6 ”). NumberFormat =„ dd-mm-rr ”„ Spowoduje to zmianę daty na „23-10-19” Range („A7”). NumberFormat = „ddd mmm rrrr” „To zmieni datę na „Środa października 2019 r. „Zakres („ A8 ”). NumberFormat =„ dddd mmmm rrrr ”„ Spowoduje to zmianę daty na „Środa października 2019 r.” Koniec Sub

Wynik tego kodu będzie następujący.

Wynik:

Zmień format daty za pomocą funkcji FORMAT

W VBA mamy funkcję o nazwie FORMAT, której można użyć do zastosowania żądanego formatu do komórki.

Musimy tylko określić, jaką wartość ma „Wyrażenie” i odpowiednio zastosować „Format”.

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

Kod:

 Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, „DD-MM-RRRR”) End Sub 

W powyższym kodzie zdefiniowałem zmienną jako wariant (który może zawierać dowolną wartość).

Kod:

 Dim MyVal As Variant 

Następnie dla tej zmiennej przypisałem wartość 43586.

Kod:

MyVal = 43586

Następnie w oknie komunikatu pokazałem wynik zmiennej, ale zanim pokażemy wynik, użyliśmy funkcji „ FORMAT ” do sformatowania wartości zmiennej „ MyVal ” i podano format „ DD-MM- RRRR ”.

Kod:

Format MsgBox (MyVal, „DD-MM-RRRR”)

Ok, uruchommy kod i zobaczmy wynik w oknie komunikatu w VBA.

Wynik:

Jak widać powyżej, wynik pokazuje się jako „ 01-05-2019 ”.

Teraz pewnie się zastanawiasz, podaliśmy numer seryjny, ale wynik jest pokazany jako data. Dzieje się tak, ponieważ Excel przechowuje datę jako numery seryjne, więc wartość 43586 jest równa dacie „01-05-2019”, a jeśli zwiększysz liczbę o 1, tj. 43587, data to „02-05-2019”.

Kod:

 Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, „DD-MM-YYY”) End Sub 

Rzeczy do zapamiętania

  • Domyślna data twojego systemu zostanie również zastosowana do twojego programu Excel.
  • Właściwość Format liczb może służyć do zmiany formatu daty w języku VBA.
  • Za pomocą funkcji FORMAT możemy zmienić format daty.
  • Excel przechowuje datę jako numery seryjne i jeśli zastosujesz format daty, zostanie odpowiednio wyświetlony.