Funcția VBA DateAdd

DateAdd Descriere

Funcția VBA DateAdd vă permite să adăugați (sau să scăpați) zile, luni, ani, ore, trimestre etc. la date sau la ore.

Date simple Adăugați exemple

Iată un exemplu simplu DateAdd:

123 Sub DateAdd_Day ()MsgBox DateAdd („d”, 20, # 4/1/2021 #)Sfârșitul Sub

Acest cod va adăuga 20 de zile (indicate prin „d”) la data de 01.04.2021:

În schimb, putem schimba argumentul Interval de la „d” la „m” pentru a adăuga 20 de luni la data de 01.04.2021:

123 Sub DateAdd_Month ()MsgBox DateAdd („m”, 20, # 4/1/2021 #)Sfârșitul Sub

În loc să afișăm data într-o casetă de mesaje, o putem atribui unei variabile:

123456 Sub DateAdd_Day2 ()Dim dt ca Datadt = DataAdd ("d", 20, # 4/1/2021 #)MsgBox dtSfârșitul Sub

Sintaxă DateAdd

În Editorul VBA, puteți tasta „DateAdd (” pentru a vedea sintaxa funcției DateAdd:

Funcția DateAdd conține 3 argumente:

Interval: Unitatea de timp (zile, luni, ani etc.). Introduceți ca șir. (ex. „m” pentru luna)

Setare Descriere
yyyy An
q Sfert
m Lună
y Ziua anului
d Zi
w Ziua săptămânii
ww Săptămână
h Ora
n Minut
s Al doilea

Număr: Valoare numerică reprezentând numărul de unități de timp de adăugat. (ex. 20 pentru a adăuga 20 de unități)

Data: Data inițială. Vezi secțiunea următoare.

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Exemple de funcții Excel VBA DateAdd

Date de referință

Pentru început, vom demonstra diferite moduri de referință a datelor folosind funcția VBA DateAdd.

Fiecare dintre aceste funcții DateAdd produce același rezultat:

123456789 Sub DateAdd_ReferenceDates ()MsgBox DateAdd („m”, 2, # 4/1/2021 #)MsgBox DateAdd („m”, 2, DateSerial (2021, 4, 1))MsgBox DateAdd („m”, 2, DateValue („1 aprilie 2022”))Sfârșitul Sub

Sau puteți face referință la o celulă care conține o dată:

12345 Sub DateAdd_ReferenceDates_Cell ()MsgBox DateAdd („m”, 2, interval („C2”). Valoare)Sfârșitul Sub

Sau creați și faceți referință la o variabilă de dată:

12345678 Sub DateAdd_Variable ()Dim dt Ca datădt = # 4/1/2021 #MsgBox DateAdd („m”, 2, dt)Sfârșitul Sub

Adăugați sau scădeți date

V-am arătat deja cum să adăugați la o dată:

123456 Sub DateAdd_Day2 ()Dim dt ca Datadt = DateAdd ("d", 20, # 4/1/2021 #)MsgBox dtSfârșitul Sub

Puteți scădea din date folosind un număr negativ (ex. -20 în loc de 20):

123456 Sub DateAdd_Day ()Dim dt ca Datadt = DateAdd ("d", -20, # 4/1/2021 #)MsgBox dtSfârșitul Sub

V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!

Adăugarea diferitelor unități de timp

Ani

123 Sub DateAdd_Years ()MsgBox DateAdd („aaaa”, 4, # 4/1/2021 #)Sfârșitul Sub

Sfert

123 Sub DateAdd_Quarters ()MsgBox DateAdd („q”, 2, # 4/1/2021 #)Sfârșitul Sub

Lună

123 Sub DateAdd_Months ()MsgBox DateAdd („m”, 2, # 4/1/2021 #)Sfârșitul Sub

Ziua anului

123 Sub DateAdd_DaysofYear ()MsgBox DateAdd („y”, 2, # 4/1/2021 #)Sfârșitul Sub

Zi

123 Sub DateAdd_Days3 ()MsgBox DateAdd ("d", 2, # 4/1/2021 #)Sfârșitul Sub

Ziua săptămânii

123 SubData Adăugare_Zile săptămânii ()MsgBox DateAdd ("w", 2, # 4/1/2021 #)Sfârșitul Sub

Săptămână

123 Subdată Adăugare_Weeks ()MsgBox DateAdd ("ww", 2, # 4/1/2021 #)Sfârșitul Sub

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Adăugați la Azi

Aceste exemple vor adăuga unități de timp astăzi folosind funcția Data.

123456789 Sub DateAdd_Year_Test ()Dim dtToday As DateDim dtMai târziu ca datădtToday = DatadtLater = DateAdd ("aaaa", 1, dtToday)MsgBox „Un an mai târziu este” & dtLaterSfârșitul Sub
123 Sub DateAdd_Quarter_Test ()MsgBox „2 sferturi mai târziu este„ & DateAdd („q”, 2, Data)Sfârșitul Sub

Adăugarea și scăderea timpului

Funcția DateAdd funcționează și cu Times. Iată câteva exemple de adăugare (sau scădere) de timp la un timp:

Ora

Acest exemplu va adăuga 2 ore la o dată:

123 Sub DateAdd_Hour ()MsgBox DateAdd („h”, 2, # 4/1/2021 6: 00: 00 #)Sfârșitul Sub

Minut

Acest exemplu va scădea 120 de minute din ora curentă:

123 Sub DateAdd_Minute_Subtract ()MsgBox DateAdd („n”, -120, acum)Sfârșitul Sub

Al doilea

123 Sub DateAdd_Second ()MsgBox DateAdd („s”, 2, # 4/1/2021 6: 00: 00 #)Sfârșitul Sub

Formatarea datelor

Când datele (sau orele) sunt afișate în Excel, UserForms sau Mesaje, ar trebui să indicați modul în care datele trebuie afișate utilizând funcția Format. Am inclus câteva exemple mai jos:

123456789101112131415161718 Sub FormattingDatesTimes ()'Returnează data și ora curentedt = Acum ()'ex. 07/02/2021Interval ("B2") = Format (dt, "mm / zz / aaaa")'ex. 2 iulie 2022Range ("B3") = Format (dt, "mmmm d, aaaa")'ex. 2 iulie 2022 09:10Interval ("B4") = Format (dt, "mm / zz / aaaa hh: mm")'ex. 7.2.21 9:10 AMGama ("B5") = Format (dt, "m.d.yy h: mm AM / PM")Sfârșitul Sub

wave wave wave wave wave