Data formatu VBA

Ten samouczek pokaże, jak formatować daty za pomocą VBA.

Formatuj daty w VBA

Istnieją dwie metody formatowania dat za pomocą VBA.

  1. Właściwość NumberFormat komórek / zakresów - aby sformatować daty przechowywane w komórkach
  2. Funkcja Format VBA - Aby sformatować daty w VBA (np. zmienne)

NumberFormat - Daty

Domyślny format liczbowy komórki w programie Excel to Ogólne. Możesz wyświetlać wartości jako liczby, tekst, daty, procenty lub waluty, zmieniając format liczb. Właściwość NumberFormat może być używana w VBA do ustawiania formatu liczbowego dat w komórce lub zakresie.

Notatka: Aby zobaczyć różne standardowe formaty daty dostępne w programie Excel, przejdź do Strona główna>Liczba, a zobaczysz opcje takie jak data krótka, data długa i godzina.


Krótka randka

Opcja Formatowanie liczby skróconej daty wyświetla datę w krótkim formacie liczbowym.

Poniższy kod ustawi właściwość .NumberFormat komórki A1 na datę skróconą:

1 Zakres("A1").NumberFormat = "mm/dd/rrrr"

Długa randka

Formatowanie liczby długiej daty wyświetla datę w dłuższym, pisanym formacie. Poniższy kod ustawi właściwość .NumberFormat komórki A1 na datę długą:

1 Range("A1").NumberFormat = "dddd, mmmm dd, rrrr"

Niestandardowe daty

Aby zobaczyć niestandardowe kody formatu liczb, których można użyć w VBA do formatowania dat, przejdź do Strona główna>Numer i kliknij przycisk Uruchom okno dialogowe. Wybierz kartę Numer i wybierz Niestandardowe.

Możesz wybrać niestandardowe wbudowane formaty daty lub utworzyć własne formaty dat zdefiniowane przez użytkownika. Poniższy kod ustawi właściwość .NumberFormat komórki A1 na wbudowany niestandardowy format daty:

1 Zakres("A1").NumberFormat = "mmm-rr"

Wynik to:

Poniższy kod ustawi właściwość .NumberFormat komórki A1 na niestandardowy format daty zdefiniowany przez użytkownika:

1 Zakres("A1").NumberFormat = "dddd-dd-mmm-rr"

Wynik to:

Przeglądając gotowe przykłady Excela, możesz dowiedzieć się, jak należy wprowadzać NumberFormats. Aby uzyskać więcej informacji, przeczytaj dokumentację firmy Microsoft dotyczącą formatów liczb dla dat.

Funkcja formatu VBA

Jak wspomniano powyżej, metoda NumberFormat jest odpowiednia do ustawiania formatu liczbowego dat przechowywanych w komórkach programu Excel. W VBA możesz użyć funkcji formatowania, aby przekonwertować daty na ciągi z określonym formatowaniem daty.

Do formatowania dat użyjesz następującej składni:

Format(String_Representation, NumberFormatCode) gdzie:

String_Representation - ciąg tekstowy reprezentujący datę.

NumberFormatCode - kod formatu liczb określający sposób wyświetlania daty.

Poniższy kod pokazuje, jak sformatować ciąg tekstowy reprezentujący datę jako format daty długiej:

1 MsgBox Format("1.01.2010", "dddd, mmmm dd, rrrr")

Wynik to:

Zauważ, że funkcja formatowania używa tej samej składni formatowania daty, co powyższa NumberFormat.

Poniższy kod pokazuje, jak sformatować ciąg tekstowy reprezentujący datę jako średni format daty:

1 MsgBox Format("09 października 2012", "Średnia data")

Wynik to:

Poniższy kod pokazuje, jak sformatować ciąg tekstowy reprezentujący datę jako format zdefiniowany przez użytkownika:

1 MsgBox Format("09 października 2012", "dddd: dd/mm/rr")

Konstruktor niestandardowych formatów VBA

Nasz dodatek VBA: AutoMacro zawiera narzędzie do tworzenia niestandardowych formatów dla edytora VBA. Pozwala to na ustawienie niestandardowych formatów i natychmiastowy podgląd danych wyjściowych dla żądanej wartości:

Dodatek VBA zawiera wiele innych „generatorów kodu”, obszerną bibliotekę kodu oraz zestaw innych narzędzi do kodowania. To najlepszy dodatek dla każdego, kto poważnie myśli o programowaniu VBA!

Data formatu VBA w programie Access

Funkcja formatu daty VBA działa dokładnie tak samo w programie Access VBA, jak w programie Excel VBA.

12345678910 Funkcja GetDateFilter() jako ciąg'utwórz ciąg, aby uzyskać informacje z 2 pól daty w formularzu w programie AccessDim strDateField As StringJeśli IsNull(Me.txtSDate) = False, toIf IsNull(Me.txtEDate) = True Then Me.txtEDate = Me.txtSDateJeśli strDateField2 = "" WtedyGetDateFilter = strDateField & " Między #" & Format(Me.txtSDate, "mm/dd/rrrr") & "# And #" & Format(Me.txtEDate, "mm/dd/rrrr") & "#"Zakończ, jeśliZakończ, jeśliKoniec funkcji

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave