Data formatu VBA - Jak zmienić format daty w kodzie 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 elementy 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.

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, tj. 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 uzyskaniu dostępu do „ Format liczb ” musimy ustawić format liczb, umieszczając znak równości i stosując 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ź-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 „śr. paź 2019”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

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

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, a jeśli zastosujesz format daty, zostanie odpowiednio wyświetlony.

Interesujące artykuły...