Funkcja różnicowania daty VBA

DataDiff Opis

Zwraca różnicę między dwiema wartościami dat na podstawie określonego interwału.

Proste przykłady DateDiff

Oto prosty przykład DateDiff:

123 Sub DateDiff_Year()MsgBox DateDiff("rrrr", #1/1/2019#, #8/1/2021#)Napis końcowy

Ten kod zwróci 2. Jest to różnica roku (wskazywana przez „rrrr”) między 2 dniami. (2021 - 2022 = 2)

W powyższym przykładzie zmiana pozycji date1 i date2.

123 Sub DateDiff_Year()MsgBox DateDiff("rrrr", #8/1/2021#, #1/1/2019#)Napis końcowy

Ten kod zwróci -2.

Składnia DateDiff

W edytorze VBA możesz wpisać „DateDiff (”, aby zobaczyć składnię funkcji DateDiff:

Funkcja DateDiff zawiera 5 argumentów:

Interwał: Jednostka czasu (dni, miesiące, lata itp.). Wpisz jako ciąg. (np. „m” oznacza miesiąc)

Ustawienie Opis
rrrr Rok
Q Jedna czwarta
m Miesiąc
tak Dzień Roku
D Dzień
w Dzień powszedni
w W Tydzień
h Godzina
n Minuta
s druga

Data1, Data2: Dwie daty, których chcesz użyć w obliczeniach.

Pierwszy dzień tygodnia: Stała określająca pierwszy dzień tygodnia. Jest to opcjonalne. Jeśli nie określono, przyjmowana jest niedziela.

Stały Wartość Opis
vbUseSystem 0 Użyj ustawienia interfejsu NLS API.
vbSunday 1 Niedziela (domyślnie)
vbMonday 2 poniedziałek
vbwtorek 3 Wtorek
vbŚroda 4 Środa
vbczwartek 5 czwartek
vbPiątek 6 piątek
vbSobota 7 sobota

Pierwszy Tydzień Roku: Stała określająca pierwszy tydzień roku. Jest to opcjonalne. Jeśli nie określono, za pierwszy tydzień przyjmuje się tydzień, w którym występuje 1 stycznia.

Stały Wartość Opis
vbUseSystem 0 Użyj ustawienia interfejsu NLS API.
vbPierwszy Sty1 1 Zacznij od tygodnia, w którym przypada 1 stycznia (domyślnie).
vbPierwsze cztery dni 2 Zacznij od pierwszego tygodnia, który ma co najmniej cztery dni w nowym roku.
vbFirstFullWeek 3 Zacznij od pierwszego pełnego tygodnia w roku.

Programowanie VBA | Generator kodu działa dla Ciebie!

Przykłady funkcji Excel VBA DateDiff

Daty odniesienia

Na początek zademonstrujemy różne sposoby odwoływania się do dat za pomocą funkcji VBA DateDiff.

Każda z tych funkcji DateDiff daje ten sam wynik:

123456789 Sub DateDiff_ReferenceDates()MsgBox DateDiff("m", #4/1/2019#, #8/1/2021#)MsgBox DateDiff("m", DateSerial(2019, 4, 1), DateSerial(2021, 8, 1))MsgBox DateDiff("m", DateValue("1 kwietnia 2022"), DateValue("1 sierpnia 2022"))Napis końcowy

Możesz też odwołać się do komórek zawierających daty:

12345 Sub DateDiff_ReferenceDates_Cell()MsgBox DateDiff("m", Range("C2").Value, Range("C3").Value)Napis końcowy

Lub utwórz i odnieś się do zmiennych daty:

123456789 Podrzędna różnica_zmiennej_daty()Dim dt1 jako data, dt2 jako datadt1 = #4/1/2019#dt2 = #8/1/2021#MsgBox DateDiff("m", dt1, dt2)Napis końcowy

Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!

Korzystanie z różnych jednostek interwału

Mieszkanie

123 Sub DateDiff_Quarter()MsgBox "liczba kwartałów: " & DateDiff("q", #1/1/2019#, #1/1/2021#)Napis końcowy

Miesiące

123 Pod dataDiff_Month()MsgBox "liczba miesięcy: " & DateDiff("m", #1/1/2019#, #1/1/2021#)Napis końcowy

Dni

123 Sub DateDiff_Day()MsgBox "liczba dni: " & DateDiff("d", #1/1/2019#, #1/1/2021#)Napis końcowy

Tygodnie

123 Sub DateDiff_Week()MsgBox "liczba tygodni: " & DateDiff("w", #1/1/2019#, #1/1/2021#)Napis końcowy

godziny

123456789101112 Sub DateDiff_Hour()Dim dt1 jako dataDim dt2 jako dataDim nDiff As Longdt1 = 14.08.2019 9:30:00 #dt2 = 14.08.2019 13:00 #nRozn = DateDiff("h", dt1, dt2)MsgBox "godziny: " i nDiffNapis końcowy

Minuty

123 Pod dataDiff_Minute()MsgBox "min: " & DateDiff("n", 14.08.2019 09:30:00#, 14.08.2019 09:35:00#)Napis końcowy

sekundy

123 Sub DateDiff_Second()MsgBox "secs: " & DateDiff("s", 14.08.2019 09:30:10 AM#, 8.14.2019 09:30:22 AM#)Napis końcowy

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

wave wave wave wave wave