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 |