Opis DateDiff
Vrne razliko med dvema vrednostma datuma glede na podani interval.
Preprosti primeri DateDiff
Tu je preprost primer DateDiff:
123 | Sub DateDiff_Year ()MsgBox DateDiff ("llll", #1/1/2019 #, #8/1/2021 #)End Sub |
Ta koda bo vrnila 2. To je razlika med letom (označena z "llll") med 2 dnevoma. (2021 - 2022 = 2)
V zgornjem primeru spreminjanje pozicij date1 in date2.
123 | Sub DateDiff_Year ()MsgBox DateDiff ("llll", #8/1/2021 #, #1/1/2019 #)End Sub |
Ta koda bo vrnila -2.
Sintaksa DateDiff
V urejevalniku VBA lahko vnesete »DateDiff («, če si želite ogledati skladnjo funkcije DateDiff:
Funkcija DateDiff vsebuje 5 argumentov:
Interval: Časovna enota (dnevi, meseci, leta itd.). Vnesite kot niz. (npr. "m" za mesec)
Nastavitev | Opis |
---|---|
llll | Leto |
q | Četrtina |
m | Mesec |
y | Dan v letu |
d | Dan |
w | Delovni dan |
ww | Teden |
h | Ura |
n | Minuta |
s | Drugič |
Datum1, Datum2: Dva datuma, ki ju želite uporabiti pri izračunu.
Prvi dan tedna: Konstanta, ki določa prvi dan v tednu. To ni obvezno. Če ni določeno, se predvideva nedelja.
Konstantno | Vrednost | Opis |
---|---|---|
vbUseSystem | 0 | Uporabite nastavitev API -ja NLS. |
vb nedelja | 1 | Nedelja (privzeto) |
vb ponedeljek | 2 | Ponedeljek |
vb Torek | 3 | Torek |
vb sreda | 4 | Sreda |
vb četrtek | 5 | Četrtek |
vbPetek | 6 | Petek |
vbSobota | 7 | Sobota |
Prvi teden: Leto: Konstanta, ki določa prvi teden v letu. To ni obvezno. Če ni določeno, se za prvi teden šteje teden, v katerem nastopi 1. januar.
Konstantno | Vrednost | Opis |
---|---|---|
vbUseSystem | 0 | Uporabite nastavitev API -ja NLS. |
vbFirstJan1 | 1 | Začnite s tednom, v katerem nastopi 1. januar (privzeto). |
vbFirstFourDays | 2 | Začnite s prvim tednom, ki ima v novem letu vsaj štiri dni. |
vbFirstFullWeek | 3 | Začnite s prvim polnim tednom v letu. |
Programiranje VBA | Generator kod deluje za vas!
Primeri funkcije Excel VBA DateDiff
Sklicevanje na datume
Za začetek bomo pokazali različne načine sklicevanja na datume s funkcijo VBA DateDiff.
Vsaka od teh funkcij DateDiff daje enak rezultat:
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. april 2022"), DateValue ("1. avgust 2022"))End Sub |
Lahko pa se sklicujete na celice, ki vsebujejo datume:
12345 | Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Razpon ("C2"). Vrednost, Razpon ("C3"). Vrednost)End Sub |
Ali ustvarite spremenljivke referenčnega datuma:
123456789 | Sub DateDiff_Variable ()Zatemni dt1 kot datum, dt2 kot datumdt1 = #4/1/2019 #dt2 = #8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)End Sub |
Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!
Uporaba različnih enot intervala
Četrtine
123 | Sub DateDiff_Quarter ()MsgBox "število četrtletjev:" & DateDiff ("q", #1/1/2019 #, #1/1/2021 #)End Sub |
Meseci
123 | Sub DateDiff_Month ()MsgBox "število mesecev:" & DateDiff ("m", #1/1/2019 #, #1/1/2021 #)End Sub |
Dnevi
123 | Sub DateDiff_Day ()MsgBox "število dni:" & DateDiff ("d", #1/1/2019 #, #1/1/2021 #)End Sub |
Tedni
123 | Sub DateDiff_Week ()MsgBox "število tednov:" & DateDiff ("w", #1/1/2019 #, #1/1/2021 #)End Sub |
Ure
123456789101112 | Sub DateDiff_Hour ()Zatemni dt1 kot datumZatemni dt2 kot datumZatemni nDiff tako dolgodt1 = #14.8.2019 9:30:00 #dt2 = #14.8.2019 13:00:00 #nDiff = DateDiff ("h", dt1, dt2)MsgBox "ure:" & nDiffEnd Sub |
Minute
123 | Sub DateDiff_Minute ()MsgBox "mins:" & DateDiff ("n", #8/14/2019 9:30:00 #, #8/14/2019 9:35:00 AM)End Sub |
Sekunde
123 | Sub DateDiff_Second ()MsgBox "secs:" & DateDiff ("s", #8/14/2019 9:30:10 AM #, #8/14/2019 9:30:22 AM #)End Sub |