Funkcja Excel VBA DateSerial
Funkcja DateSerial w VBA zwraca datę z wartości podanych przez użytkowników. Musimy podać, jaki jest rok, jaki jest dzień i jaki jest miesiąc. Wynik będzie oparty na formacie daty w systemie.
Poniżej znajduje się składnia funkcji DATESERIAL .

# 1 - Rok: musimy wpisać liczbę całkowitą jako rok? Podając liczby całkowite, musimy mieć na uwadze poniższe kwestie.
- Możemy dostarczyć numery od 0 do 9999.
- Liczby jedno- i dwucyfrowe od 0 do 99 będą traktowane od 1930 do 2029 roku.
- Ujemna liczba całkowita zostanie odjęta od roku 2000. Na przykład, jeśli podasz -1, wynikiem będzie 1999, ponieważ 2000 - 1 = 1999.
# 2 - Miesiąc: musimy wpisać liczbę całkowitą jako miesiąc? Podczas wpisywania tego numeru musimy pamiętać o poniższych kwestiach.
- Możemy dostarczyć tylko numery od 1 do 12.
- Jeśli podana wartość całkowita wynosi 0, będzie to oznaczać miesiąc „grudzień” poprzedniego roku.
- Jeśli podana wartość całkowita to -1, będzie to oznaczać miesiąc „listopad” poprzedniego roku. W ten sposób, gdy wartość ujemna wzrośnie, będzie reprezentować poprzedni miesiąc roku.
- Jeśli podana liczba jest większa niż 12, tj. Jeśli liczba wynosi 13, będzie to oznaczać miesiąc „styczeń” następnego roku. Jeśli liczba wynosi 14, to będzie traktowany jako miesiąc „luty” następnego roku.
# 3 - Dzień: musimy wpisać liczbę całkowitą jako jaki jest dzień? Podczas wpisywania tego numeru musimy pamiętać o poniższych kwestiach.
- Dla dni bieżącego miesiąca możemy wprowadzić liczby całkowite od 1 do 31.
- Jeśli liczba wynosi 0, będzie to ostatni dzień poprzedniego miesiąca.
- Jeśli liczba wynosi -1, będzie reprezentować przedostatni dzień poprzedniego miesiąca.
- Jeśli podasz +1 ostatni dzień tego miesiąca, to będzie to pierwszy dzień następnego miesiąca. Na przykład, jeśli ostatni dzień sierpnia to 31 sierpnia i jeśli podasz dzień 31 + 1, to będzie to pierwszy dzień września.
Jak korzystać z funkcji DATESERIAL w VBA?
Przykład 1
Aby użyć funkcji DATESERIAL, zacznij pisać kod makra.
Krok 1: Rozpocznij procedurę podrzędną
Najpierw utwórz podprocedurę VBA, jak pokazano poniżej.

Krok 2: Zadeklaruj zmienną
Teraz zadeklaruj zmienną jako DATE.

Krok 3: Przypisz funkcję DateSerial do tej zmiennej.
Teraz dla tej zmiennej przypisz funkcję DATESERIAL.

Krok 4: Teraz wprowadź wartości roku, miesiąca i dnia w funkcji DateSerial
Na ROK podaż 2019, na MIESIĄC podaż 08 i na DZIEŃ dostawa 05.

Krok 5: Pokaż wynik w oknie wiadomości
Teraz pokaż wynik zmiennej „Moja data” w oknie komunikatu.
Kod:
Option Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Mydate End Sub

Krok 6: Uruchom kod
Teraz uruchom ten kod, aby zobaczyć poniżej datę.

Wynik mówi „05.08.2019”. W moim systemie data ma format „MM-DD-RRRR”, dlatego też wynik jest w tym samym formacie.
Możemy również zmienić format daty za pomocą funkcji FORMAT w VBA. Zastosuj funkcję FORMAT, jak poniżej.
Kod:
Option Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Format (Mydate, „DD-MMM-RRRR”) End Sub
Spowoduje to zastosowanie formatu „DD-MMM-RRRR”, a wynik będzie następujący.

Przykład nr 2
Możemy również zadeklarować zmienne i podać wartości do tych zmiennych. Na przykład spójrz na poniższy kod.
Kod:
Sub DateSerial_Example2 () Dim Mydate As Date Dim MyYear As Integer Dim MyMonth As Integer Dim MyDay As Integer MyYear = 2019 MyMonth = 8 MyDay = 5 Mydate = DateSerial (MyYear, MyMonth, MyDay) MsgBox Format (Mydate, "DD-MMMY) ") Napis końcowy
Zamiast podawać rok, miesiąc i dzień bezpośrednio do funkcji DATESERIAL, zadeklarowaliśmy zmienne i przypisaliśmy im wartości. Później dostarczyliśmy zmienne do funkcji DATESERIAL.
W ten sposób możemy wykorzystać zmienne w VBA do przechowywania wartości.
Przykład nr 3
Teraz będziemy eksperymentować z rokiem. Przypiszę wartość roku jako 1 i zobaczę wynik.

Liczby jedno- i dwucyfrowe w ROKU oznaczają rok od 1930 do 2029. Zatem 01 oznacza 2001, 02 oznacza 2002 i tak dalej.
Teraz zmieńmy numer miesiąca na 0 i zobaczmy wynik.

Spójrz na kod tutaj, rok to 2019, a miesiąc to 0. Ale spójrz na wynik, który mówi 05-grudzień-2019, podczas gdy podany rok to 2019, czyli 2018, czyli rok poprzedni.
Dzieje się tak, ponieważ ponieważ podaliśmy miesiąc jako 0, funkcja DATESERIAL zajmuje miesiąc do ostatniego miesiąca poprzedniego roku i odpowiednio zmienia rok.
W ten sposób spróbuj różnych liczb, aby zobaczyć wpływ funkcji.
Rzeczy do zapamiętania
- Musisz wiedzieć, jaka liczba oznacza rok, miesiąc i przedszkole. Przeczytaj uważnie wyjaśnienie składni, aby zrozumieć.
- Wynik będzie oparty na formacie daty w systemie. Jeśli chcesz zmodyfikować wynik, musisz zastosować funkcję FORMAT, podając format daty, zgodnie z wygodą.