Funktsioon DateDiff Excelis VBA

Funktsioon VBA Datediff pakub erinevust kahe kindlaksmääratud intervalli vahel. Siin võib intervalli täpsustada tundide / kuude / päevadena jne., Nagu kasutaja on määranud. See on Excelis sisseehitatud funktsioon ja seda liigitatakse funktsiooniks “ Kuupäev / kellaaeg ”. Seda saab Excelis kasutada VBA funktsioonina.

Süntaks :

Funktsioonis DateDiff kasutatud parameeter või argumendid.

1. Intervall:

  • See on kohustuslik.
  • Tüüp: - stringi tüüpi avaldis.
  • See arvutab kahe kuupäeva vahe.
Seadistamine (intervall) Kirjeldus / seletus
“S” Sekundid
N Protokollid
“H” Tundi
“D” Päevad
“W” Nädalapäev
“M” Kuud
“Ww” Nädal
“Y” Aasta päev
“Q” Kvartal
Aaaa Aasta

2. kuupäev1:

  • See on kohustuslik.
  • Tüüp: - Kuupäev.
  • See tähistab kuupäevaga kuupäeva arvutamise alguskuupäeva / kellaaega.

3. kuupäev2:

  • See on kohustuslik.
  • Tüüp: - Kuupäev.
  • See tähistab kuupäevaga kuupäeva arvutamise lõppkuupäeva / kellaaega.

4. Nädala esimene päev:

  • See on valikuline.
  • Tüüp: - numbriline või tekst.
  • See täpsustab päeva, mida kasutatakse nädala esimese päeval.
  • Kui see argument või parameeter jäetakse välja, eeldatakse, et nädala esimeseks päevaks on pühapäev (VbSunday).

5. Aasta esimene nädal

  • See on valikuline.
  • Tüüp: - numbriline või tekst.
  • See täpsustab päeva, mida kasutatakse aasta esimese nädalana.
  • Kui see argument või parameeter jäetakse välja, eeldatakse, et aasta esimese nädalana on 1. jaanuar (vbFirstJan1).

Kuidas Excelis arendaja vahekaarti lubada?

Arendaja sakk on VBA makro käivitamiseks ja kirjutamiseks kohustuslik Exceli ribal. Allpool on toodud erinevad sammud arendajate vahekaardi lubamiseks Exceli VBA-s:

1. samm: minge vahekaardile File .

2. samm: klõpsake menüüs File (Fail) käsku Options ( Suvandid), mis asub menüü all olevas loendis.

3. samm: lindi kohandamisvalikutele pääsemiseks klõpsake käsul Kohanda linti.

4. samm: kohandamisvalikutes näete suvandit Arendaja . Märkige see nii, et see aktiveeritaks exceli põhilindil ja sellele oleks hõlpsasti juurde pääseda. Pärast arendaja valiku kontrollimist klõpsake nuppu OK .

Niipea kui klõpsate nuppu OK, näete Exceli lindimenüüs aktiivset vahekaarti Arendaja, mille all leiate hulga erinevaid valikuid. Vaadake allolevat ekraanipilti.

Kuidas kasutada funktsiooni DateDiff Excel VBA-s?

Allpool on toodud erinevad toimingud funktsiooni DateDiff kasutamiseks Excel VBA-s:

Selle VBA DateDiff Exceli malli saate alla laadida siit - VBA DateDiff Exceli mall

Näide nr 1

Selles näites toimige järgmiselt, et kasutada funktsiooni DateDiff VBA-s:

1. samm: kõigepealt looge makro nimi.

Kood:

 Alambb () lõpp alam 

2. samm: kaks muutujat on määratletud kui kuupäev ja neile määratud kuupäev.

Kood:

 Sub bb () Dim dt1 Kuupäevana Dim dt2 Kuupäevana dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 # End Sub Sub 

3. samm: kirjutage funktsiooni Datediff süntaks, võttes vajaliku argumendi, ja määrake see läbi VBA-teatekasti.

Kood:

 Subbb () Dim dt1 Nagu Kuupäev Dim dt2 As Kuupäev dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 # # MsgBox DateDiff ("h", dt1, dt2) lõpu alam 

4. samm: käivitage kood, vajutades klahvi F5 või klõpsates nuppu Esita. Nii et tulemus kuvatakse teadete kastis.

Näide 2

Allpool toodud näites arvutab dateeritud funktsioon aastate arvu kahe kuupäeva "09.06.2016" ja "16.12.20120" vahel. Valikulisi parameetreid siin ei arvestata.

Kood:

 AA alamosa () 'Aastavahe MsgBox DateDiff ("aaaa", "09.06.2016", "16.12.20120") Lõpp Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide 3

Allpool toodud näites arvutab dateeritud funktsioon kuude arvu kahe kuupäeva “09.06.2016” ja “16.12.20120” vahel. Valikulisi parameetreid siin ei arvestata.

Kood:

 Sub AA1 () 'kuu erinevus MsgBox DateDiff ("m", "09.06.2016", "16.12.20120") Lõpp Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide 4

Allpool toodud näites arvutab dateeritud funktsioon nädalate arvu kahe kuupäeva "09.06.2016" ja "16.12.20120" vahel. Valikulisi parameetreid siin ei arvestata.

Kood:

 Alam Sub AA2 () nädalate erinevus MsgBox DateDiff ("ww", "09.06.2016", "16.12.20120") Lõpp alam 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide 5

Allpool toodud näites arvutab funktsioon „ dateeritud ” kvartalite arvu kahe kuupäeva “09/06/2016” ja “16/12/2020” vahel. Valikulisi parameetreid siin ei arvestata.

Kood:

 AA3 () alamveerandi vahe MsgBox DateDiff ("q", "09.06.2016", "16.12.20120") Lõpp Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide 6

Allpool toodud näites arvutab funktsioon „ dateeritud ” päevade arvu kahe kuupäeva „09.06.2016” ja „16.12.20120” vahel. Valikulisi parameetreid siin ei arvestata.

Kood:

 Sub AA4 () päevade erinevus MsgBox DateDiff ("d", "09.06.2016", "16/12/2020") Lõpp Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide # 7

Allpool toodud näites arvutab funktsioon " dateeritud " tundide arvu kahe kuupäeva ja kellaaja vahel " 01:00 / 2010 9:00 ja 19/04/2019 " 11:00 ".

Kood:

 Sub bb1 () 'Arvutage tundide arv vahemikus 1. jaanuar 2010 9:00 kuni 19/4/2019 11:00 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 # MsgBox DateDiff ("h", dt1, dt2) End Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide nr 8

Allpool toodud näites arvutab funktsioon " dateeritud " sekundite arvu kahe kuupäeva ja kellaaja vahel " 01:00 / 2010 9:00 ja 19/04/2019 " 11:00 ".

Kood:

 Sub bb2 () 'Arvutage sekundite arv vahemikus 1. jaanuar 2010 9:00 kuni 19/4/2019 11:00 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 # MsgBox DateDiff ("s", dt1, dt2) End Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide nr 9

Allpool toodud näites arvutab funktsioon " dateeritud " minutite arvu kahe kuupäeva ja kellaaja vahel " 01:00 / 2010 9:00 ja 19/04/2019 " 11:00 ".

Kood:

 Sub bb3 () 'Arvutage minutite arv ajavahemikus 1. jaanuar 2010 9:00 kuni 19/4/2019 11:00 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 # MsgBox DateDiff ("n", dt1, dt2) End Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide # 10

Kui argumendiks on määratud „w” (nädalat), tagastab funktsioon „Datifif” terve kuupäeva numbri kahe kuupäeva vahel. Osalisi nädalaid eiratakse. Näites arvutab funktsioon „ DateDiff ” tervete nädalate arvu kuupäevade 01.01.2010 kuni 19.4.2019 vahel.

Kood:

 Sub bb4 () 'Arvutage nädalate arv vahemikus 1. jaanuar 2010 - 19.4.2010. Dim dt1 Kuupäevana Dim dt2 Kuupäevana dt1 = # 1/1/2010 # dt2 = # 4/19/2010 # MsgBox DateDiff ("w", dt1, dt2) Lõpu alam 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide # 11

Kui argumendiks on määratud „ww” (kalendrinädalad), pakub funktsioon „Datifif” nädalate arvu nädala alguse kuupäeva, mis sisaldab kuupäeva1, ja nädala algust, mis sisaldab kuupäeva2 vahel.

Kood:

 Sub bb5 () 'Arvutage kalendrinädalate arv vahemikus 1. jaanuar 2010 - 19.4.2019' Nädala esimene päev = esmaspäev Dim dt1 kui kuupäev Dim dt2 kui kuupäev dt1 = # 1/1/2010 # dt2 = # 4/19/2019 # MsgBox DateDiff ("ww", dt1, dt2, vbMonday) End Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Näide # 12

Allpool toodud näites kasutatakse kuupäeva "funktsiooni" kuupäevade "1/1/1990" ja "1/1/1998" jaoks

Kood:

 Sub cc () Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/1990 9:00:00 AM # dt2 = # 1/11/1998 11:00:00 AM # MsgBox ("real 1:" & DateDiff ("h", dt1, dt2)) MsgBox ("rida 2:" & DateDiff ("s", dt1, dt2)) MsgBox ("rida 3:" & DateDiff ("n", dt1, dt2)) MsgBox ("rida 4:" & DateDiff ("d", dt1, dt2)) MsgBox ("rida 5:" & DateDiff ("m", dt1, dt2)) MsgBox ("rida 6:" & DateDiff ("q"), dt1, dt2)) MsgBox ("rida 7:" & DateDiff ("w", dt1, dt2)) MsgBox ("rida 8:" & DateDiff ("ww", dt1, dt2)) MsgBox ("rida 9: "& DateDiff (" y ", dt1, dt2)) MsgBox (" rida 10: "& DateDiff (" aaaa ", dt1, dt2)) End Sub 

Programmi käivitamiseks vajutage vahekaarti F8 või Run . Tulemus kuvatakse teadete kastis.

Seejärel klõpsake järgmise tulemuse saamiseks nuppu „ Ok ”.

Järeldus

Funktsioon „ DateDiff ” aitab seega kindlaks teha, kui palju kindlaksmääratud ajavahemikke on kahe kindlaksmääratud kuupäeva ja kellaaja vahel.

Soovitatavad artiklid

See on VBA DateDiffi juhend. Siin arutatakse, kuidas kasutada funktsiooni DateDiff Excel VBA-s koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA deklareeritav massiiv (näited)
  2. VBA täielik juhend vigade kohta
  3. Kaitseta lehtmeetod VBA-s
  4. VBA veerud | Exceli mall
  5. VBA keskkond

Kategooria: