VBA-datumfunksie (12 gebruike van makro's met voorbeelde)

  • Deel Dit
Hugh West

INHOUDSOPGAWE

In Microsoft Visual Basic Application is datumfunksies of enige datumverwante konsepte noodsaaklik om verskeie bewerkings in jou datastel uit te voer. Jy kan jouself in verskeie situasies bevind waar jy hierdie funksies sal moet gebruik. In hierdie tutoriaal sal jy leer oor die Datumfunksie van VBA met geskikte voorbeelde en behoorlike illustrasies. Ons sal ook vir jou verskeie datumfunksies voorsien wat jy in jou werkblad kan implementeer.

Laai Praktykwerkboek af

Gebruik van VBA Date.xlsm

Inleiding tot VBA Datumfunksie

Excel kategoriseer Datums in die Datum/Tyd -funksie. Dit is 'n ingeboude funksie. Ons kan dit in VBA-makro's gebruik om enige datumverwante bewerkings uit te voer.

Voordat jy met die Datumfunksie begin, moet jy weet van die Datumveranderlikes in VBA .

⏺ Sintaksis

Datum()

⏺ Argumente Verduidelikings

Daar is geen argumente nie .

⏺ Gee terug

Gee die huidige datum terug.

⏺ Beskikbaar in

Excel vir Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 vir Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000

⏺ Voorbeeld

Soos u weet, is daar geen argumente nie, u kan dit net soos die volgende invoer:

8299

Wanneer ons met die Datum-funksie werk, gee ons geen hakies in die VBA-kodes soos hierdie voorbeeld nie.

Uitvoer :

12Sondag

2 –       Maandag

3 –       Dinsdag

4 –       Woensdag

5 –       Donderdag

6 –       Vrydag

7 –       Saterdag

Kodebrokkie:

8251

Uitvoer:

Soos jy kan sien, gee die VBA-datumfunksie 4 terug. Dit beteken Woensdag.

Verwante inhoud: Hoe om Fix-funksie in Excel VBA te gebruik (4 voorbeelde)

9. VBA WeekdayName-funksie

Gee 'n string terug wat die beperkte dag van die week vertoon.

Sintaksis :

WeekdagNaam(weekdag, verkort, eerstedag van die week)

Argument:

weekdag: Vereiste veld. Die numeriese identifikasie vir die dag van die week. Die numeriese waarde van elke dag berus op die instelling van die eerstedag van die week instelling.

afkorting: Dit is opsioneel. Boole-waarde wat impliseer of die weekdagnaam verkort moet word. As dit oorgeslaan word, is die verstek Onwaar, wat aandui dat die weekdagnaam nie verkort of verkort is nie.

eerstedag van die week: Opsionele veld. Numeriese waarde wat die eerste dag van die week aandui. Dit kan verskeie waardes hê.

Die eerstedag van die week argument kan die daaropvolgende waardes hê:

vbSondag – gebruik Sondag as die voorste dag van die week.

vbMonday – gebruik Maandag as die eerste dag van die week.

vbDinsdag – funksioneer Dinsdag as die eerste dag vandie week.

vbWednesday – gebruik Woensdag as die eerste dag van die week.

vbThursday – werk Donderdag as die eerder dag van die week .

vbFriday – gebruik Vrydag as die eerste dag van die week.

vbSaturday – werk Saterdag as die eerste dag van die week.

vbUseSystemDayOfTheWeek – gebruik die eerste dag van die week wat deur jou toestel se instelling gedefinieer word.

Kodebrokkie:

3057

Uitvoer:

Soos jy kan sien, wys die bogenoemde VBA-kodes die weekdagnaam.

Verwante inhoud: Hoe om VBA WeekdayName-funksie in Excel te gebruik (2 voorbeelde)

10. Jaarfunksie in VBA Datum

Dit gee 'n Variant (Geheelgetal) terug met 'n reële getal wat die jaar uitdruk.

Sintaksis :

Jaar(datum)

Argument:

Die vereiste datumargument is enige Variant, numeriese uitdrukking, string uitdrukking, of enige kombinasie. Dit verteenwoordig 'n datum. As die datum Null insluit, sal dit ook Null terugstuur.

Kodebrokkie:

3226

Uitvoer:

Hier kan jy die jaar van die gegewe datum sien nadat die VBA-kode geïmplementeer is.

Lees meer: Hoe om die VBA-vervangingsfunksie in Excel te gebruik ( 11 Toepassings)

11. FormateerDatumTyd-funksie

Hierdie funksie gee 'n uitdrukking terug wat as 'n datum of tyd geformateer is.

Sintaksis :

FormaatDatumTyd(Datum, [ NamedFormat])

Argument:

Datum: Vereiste veld. Datumuitdrukking wat geformateer moet word.

NamedFormat: Dit is opsioneel. Dit is 'n numeriese waarde wat die datum/tyd-formaat vertoon. As dit weggelaat word, het dit die vbGeneralDate gebruik.

Die NamedFormat kan die volgende waardes hê:

vbGeneralDate (0): Wys 'n datum en/of tyd. As daar 'n datumdeel is, druk dit uit as 'n kort datum. As daar 'n tyddeel is, vertoon dit as 'n lang tyd. Beide dele word uitgestal indien teenwoordig.

vbLongDate(1): Stel 'n datum uit deur die lang datumkonfigurasie wat in jou rekenaar se streekinstellings gekies is, te gebruik.

vbShortDate (2): Vertoon 'n datum deur die kort datumformaat te gebruik wat in jou rekenaar se streekinstellings gespesifiseer is.

vbLongTime(3): Wys 'n tyd deur die tydformaat te gebruik wat in gespesifiseer word in jou rekenaar se streekinstellings.

vbShortTime(4): Vertoon 'n tyd deur die 24-uur-formaat (uu:mm) te gebruik.

Kodebrokkie:

4189

Uitvoer:

Jy sal die volgende dialoogkassies sien nadat jy die kode uitgevoer het:

Hier kan jy al die tyd- en datumformate in VBA sien.

Lees Meer: Hoe om VBA TimeValue-funksie te gebruik (6 Relevante Voorbeelde)

12. VBA CDate-funksie

Die funksie skakel 'n geldige datum- en tyduitdrukking om na 'n tipiese datum.

Sintaksis :

CDdatum(datum)

Argument:

Die vereiste datumargument is enige Variant, numeriese uitdrukking, string-uitdrukking of enige kombinasie. Dit verteenwoordig 'n datum. As die datum Null insluit, sal dit ook Null terugstuur.

Kodebrokkie:

2445

Uitvoer:

Soos jy kan sien, het ons VBA-kode pas 'n tipiese datumformaat van Excel teruggegee.

Verwante inhoud: Hoe om VBA DIR-funksie in Excel te gebruik (7 Voorbeelde)

Voorbeelde van VBA-datum

In die volgende afdelings sal ons jou voorsien van drie praktiese en geskikte voorbeelde van datum wat VBA gebruik. Hierdie voorbeelde sal datumverwante probleme en hul oplossings bevat. Ons beveel aan dat jy al hierdie voorbeelde lees en oefen om jou VBA-kennis te verbeter. Kom ons gaan in.

1. Bereken agterstallige dae deur Datum in VBA te gebruik

Die betekenis van agterstallige gebeure laat, of verby die sperdatum. Veral laat, verby 'n sperdatum of te laat om aan 'n vereiste te voldoen.

Gestel jy moet 'n werkopdrag indien wat Sondag ingedien moet word. Maar dit is Dinsdag, en jy het dit nie ingedien nie. Jy kan dit twee agterstallige dae noem.

Kyk na die volgende datastel:

Hier het ons 'n datastel van sommige studente en hul werkopdrag indiening datum. Jy kan die laaste datum van indiening sien. Ons doel is om die agterstallige datum op grond van die indieningsdatum te vind. Nou, om dit te bereik, volg hierdie stappe:

📌 Stappe

  • Druk eers Alt+F11 op jou sleutelbord om die VBA-redigeerder oop te maak.
  • Kies dan Voeg in > Module .

  • Tik daarna die volgende kode in:
2628

Ons het die ABS-funksie om die minusteken te verwyder.

  • Stoor dan die lêer.
  • Druk daarna Alt+F8 op jou sleutelbord om oop te maak die Makro dialoogkassie.
  • Volgende, kies
  • Klik dan op Run .

Soos jy kan sien, het ons die datum suksesvol in VBA gebruik en die agterstallige dae gevind.

Soortgelyke lesings

  • Hoe om VBA-spasie te gebruik Funksie in Excel (3 voorbeelde)
  • Gebruik VBA ChDir-funksie in Excel (4 geskikte voorbeelde)
  • Hoe om IsNull-funksie in Excel VBA te gebruik (5 Voorbeelde)
  • Gebruik VBA Terwyl Wend Statement in Excel (4 Voorbeelde)
  • Hoe om 'n Sub in VBA in Excel te noem (4 Voorbeelde)

2. Vind Geboortejaar vanaf Datum deur VBA te gebruik

Nou kan jy die Jaar vanaf 'n spesifieke datum vind. Dit is redelik maklik om te vind.

Kyk na die volgende datastel:

Hier kan jy die geboortedatum van sommige persone sien. Ons doel is om die geboortejaar uit die datum en ook die geboortejaar van die laaste inskrywing Elizabeth te onttrek.

📌 Stappe

  • Druk eers Alt+F11 op jou sleutelbord om die VBA-redigeerder oop te maak.
  • Kies dan Insert>Module .

  • Tik daarnadie volgende kode:
3652
  • Stoor dan die lêer.
  • Daarna, druk Alt+F8 op jou sleutelbord om die Makro-dialoog oop te maak boks.
  • Volgende, kies vind_jaar .
  • Klik dan op Run .

Uiteindelik kan u sien dat ons suksesvol is om die geboortejaar van elke datum te onttrek. Ons het ook die geboortejaar van die laaste inskrywing gevind deur die datum van VBA in Excel te gebruik.

3. Voeg Dae in Datum by met VBA

Nou kan jy die datumveranderlike definieer en dit gebruik om die datum by te voeg. Om dit uit te voer, gebruik ons die DateAdd metode van VBA. Jy kan hierdie funksie gebruik om dae, maande en jare by 'n spesifieke datum te voeg.

Kyk na die volgende datastel:

Hier, jy kan 'n paar name en 'n paar datums daarby sien. Nou is ons doelwit om nog vyf dae by hierdie gegewe datums te voeg en 'n nuwe datum te genereer.

📌 Stappe

  • Druk eers Alt +F11 op jou sleutelbord om die VBA-redigeerder oop te maak.
  • Kies dan Insert>Module .

  • Tik daarna die volgende kode in:
4561

Hier het ons "d" as 'n argument in die DateAdd-funksie gebruik. Jy kan dit verander na "y" of "m" om onderskeidelik jare of maande by te voeg,

  • Stoor dan die lêer.
  • Druk daarna Alt+F8 op jou sleutelbord om die Makro dialoogkassie oop te maak.
  • Volgende, kies.
  • Klik dan op Run .

Soos jy kansien, ons het dae suksesvol by 'n datum gevoeg deur die datum in VBA te gebruik. Nou kan jy die kode verander volgens jou keuse.

💬 Dinge om te onthou

VBA Datum-funksie werk eintlik soos die TODAY-funksie in Excel.

VBA DATE is 'n nie-vlugtige funksie in Excel. Dit beteken dit sal die data behou selfs daar is 'n onderbreking in die kragtoevoer.

Basies, VBA stoor Datumwaardes as DATUM ten tyde van implementering.

Dus, as jy probeer om 'n datumveranderlike as 'n string/teks toe te wys, sal dit 'n fout veroorsaak.

Die verstekwaarde van Datum is 0: 00:00 (middernag) op 1 Januarie 0001.

Gevolgtrekking

Om af te sluit, ek hoop dat hierdie tutoriaal vir jou 'n stukkie nuttige kennis oor die Datum in VBA-kodes verskaf het. Ons beveel aan dat jy al hierdie instruksies leer en toepas op jou datastel. Laai die oefenwerkboek af en probeer dit self. Gee ook gerus terugvoer in die kommentaarafdeling. Jou waardevolle terugvoer hou ons gemotiveerd om tutoriale soos hierdie te skep.

Moenie vergeet om ons webwerf Exceldemy.com na te gaan vir verskeie Excel-verwante probleme en oplossings nie.

Hou aan om nuwe metodes te leer en hou aan groei!

Datumfunksies in VBA wat jy moet leer

Nou, in die komende afdelings, sal ons jou 'n paar bykomende datumfunksies wys wat jy vir talle doeleindes in VBA kan gebruik. Lees hierdie afdelings om elke moontlike manier te ken om met die datum in VBA te werk. Ons stel voor dat jy hulle in jou arsenaal hou. Dit sal sekerlik jou kennis verbeter.

1. DateAdd-funksie as Datum in VBA

In VBA gebruik ons ​​die DateAdd-funksie om dae in 'n spesifieke datum by te voeg. Daarna sal dit die resulterende datum terugstuur.

Sintaksis:

DatumAdd(interval, nommer, datum)

Argumente:

interval: Dit word vereis. Stringuitdrukking is die tydsinterval wat jy wil byvoeg.

nommer: Vereis. Dit is 'n Numeriese uitdrukking wat die aantal intervalle is wat jy wil byvoeg. Dit kan positief wees (om datums in die toekoms te kry) of negatief (om datums in die verlede te kry).

datum: Die oorspronklike datum/tyd.

Nou kan die interval argumente die volgende instellings hê:

jjjj –   Jaar

q     – Kwartaal

m    – Maand

j –    Dag van die jaar

d     – Dag

w    – Weekdag

ww – Week

u    – Uur

n    – Minuut

s    – Tweede

Kodebrokkie :

5275

Uitvoer:

Soos jy kan sien, het dit 15 datums bygevoeg in die huidige datum inVBA.

Lees meer: Hoe om IsDate-funksie in VBA te gebruik (3 voorbeelde)

2. DateDiff-funksie in VBA

Die DateDiff-funksie gee 'n Variant (Lang) terug wat die aantal tydgapings tussen twee gespesifiseerde datums bepaal.

Sintaksis :

DateDiff( interval, datum1, datum2, [ firstdayofweek, [ firstweekofyear ]] )

Argumente:

interval: Dit is Vereis. String uitdrukking is die interval van tyd wat jy wil byvoeg String uitdrukking wat die gaping van tyd is wat jy gebruik om die onderskeid tussen twee datums te bereken.

date1,date2 : Vereis; Variant (Datum). Twee datums wat jy in die berekening wil gebruik.

eerstedag van die week: Opsioneel. 'n Konstante wat die eerste dag van die week definieer. Indien nie vasgestel nie, word Sondag aanvaar.

eersteweekvanjaar: Opsioneel. 'n Konstante wat die eerste week van die jaar bepaal. Indien nie gestel nie, is die eerste week veronderstel om die week te wees waarin 1 Januarie verskyn.

Nou kan die interval argumente die volgende instellings hê:

jjjj –   Jaar

v     – Kwartaal

m    – Maand

j –    Dag van die jaar

d     – Dag

w    – Weekdag

ww – Week

u    – Uur

n    – Minuut

s    – Tweede

Die firstdayofweek argument het hierdie instellings:

vbSunday –gebruik Sondag as die voorste dag van die week.

vbMonday – gebruik Maandag as die eerste dag van die week.

vbDinsdag – werk Dinsdag as die eerste dag van die week.

vbWoensdag – gebruik Woensdag as die eerste dag van die week.

vbDonderdag – werk Donderdag as die eerder dag van die week.

vbVrydag – gebruik Vrydag as die eerste dag van die week.

vbSaterdag – werk Saterdag as die eerste dag van die week.

vbUseSystemDayOfTheWeek – gebruik die eerste dag van die week wat deur jou toestel se instelling gedefinieer word.

Die eersteweekvanjaar het hierdie instellings:

vbFirstJan1 – gebruik die week wat 1 Januarie bevat.

vbFirstFourDays – gebruik die eerste week wat ten minste het vier dae in die nuwe jaar.

vbFirstFullWeek – bedryf die eerste volle week van die jaar.

vbSystem – gebruik die eerste week van die jaar soos gedefinieer deur jou toestelliggings.

Kodebrokkie:

8902

Uit put :

Op die ou end gee dit die verskil tussen die twee datums in VBA terug.

Lees Meer: Hoe om VBA DateDiff-funksie in Excel te gebruik (9 voorbeelde)

3. DatePart-funksie as Datum

Die DatePart-funksie gee 'n Variant (Geheelgetal) terug wat die gedefinieerde deel van bevat 'n verskafde datum.

Sintaksis :

DatumPart(interval, datum, [ eerstedag van die week, [firstweekofyear ]])

Argumente:

interval: Dit word vereis. String uitdrukking is die interval van tyd wat jy wil byvoeg String uitdrukking wat die gaping van tyd is wat jy gebruik om die onderskeid tussen twee datums te bereken.

datum: Vereis; Variant (Datum). Die Datum wat jy in die berekening wil gebruik.

eerstedag van die week: Opsioneel. 'n Konstante wat die eerste dag van die week definieer. Indien nie vasgestel nie, word Sondag aanvaar.

eersteweekvanjaar: Opsioneel. 'n Konstante wat die eerste week van die jaar bepaal. Indien nie gestel nie, is die eerste week veronderstel om die week te wees waarin 1 Januarie verskyn.

Nou kan die interval argumente die volgende instellings hê:

jjjj –   Jaar

v     – Kwartaal

m    – Maand

j –    Dag van die jaar

d     – Dag

w    – Weekdag

ww – Week

u    – Uur

n    – Minuut

s    – Tweede

Die eerstedag van die week argument het hierdie instellings:

vbSondag – gebruik Sondag as die voorste dag van die week.

vbMonday – gebruik Maandag as die eerste dag van die week.

vbDinsdag – werk Dinsdag as die eerste dag van die week.

vbWoensdag – gebruik Woensdag as die eerste dag van die week.

vbDonderdag – werk Donderdag as die eerder dag van dieweek.

vbFriday – gebruik Vrydag as die eerste dag van die week.

vbSaterdag – werk Saterdag as die eerste dag van die week.

vbUseSystemDayOfTheWeek – gebruik die eerste dag van die week wat deur jou toestel se instelling gedefinieer word.

Die eersteweekvanjaar het hierdie waardes:

vbFirstJan1 – werk die week, insluitend 1 Januarie.

vbFirstFourDays – gebruik die eerste week wat hoogstens vier dae ondermaats in besit. die nuwe jaar.

vbFirstFullWeek – gebruik die eerste volle week van die jaar.

vbSystem – gebruik die eerste week van die jaar soos gekies volgens jou toestelliggings.

Kodebrokkie :

3339

Uitvoer :

Op hierdie manier kan jy hierdie datumfunksie in VBA-kodes gebruik.

Lees Meer: Hoe om VBA FileDateTime-funksie in Excel te gebruik (3 gebruike)

4. DateSerial Funksie

Jy kan 'n datum sien gebaseer op 'n invoerjaar, maand en dag deur die DateSerial funksie te gebruik.

Sintaksis:

DatumSerial(jaar, maand, dag)

Argumente:

jaar – Vereiste veld. 'n Getal tussen 100 en 9999, insluitend, of 'n numeriese uitdrukking wat die jaar simboliseer.

maand – Vereiste veld. 'n Heelgetalwaarde wat die maand definieer.

dag – Vereiste veld. 'n Heelgetalwaarde wat die dag beskryf.

Kodebrokkie:

7586

Uitvoer :

Lees meer: Hoe om VBA TimeSerial in Excel te gebruik (3 voorbeelde)

4. VBA DateValue Funksie

Nou gebruik ons ​​die DateValue-funksie om 'n datum te definieer.

Sintaksis :

DateValue(date)

Argument:

Hier is die datum argument gewoonlik 'n string uitdrukking wat 'n datum vanaf 1 Januarie 100 beskryf , tot 31 Desember 9999. Ongeag, die datum kan verder enige uitdrukking wat 'n datum, 'n tyd, of beide 'n datum en tyd in daardie reeks kan simboliseer.

Kodebrokkie:

5753

Uitvoer :

Soos jy kan sien, het ons die datumfunksie suksesvol in VBA-kodes gebruik.

5. Dagfunksie in VBA

Dit gee 'n Variant (Geheelgetal) terug wat 'n reële getal tussen 1 en 31 bepaal, insluitend, wat die dag van die maand oordra.

Sintaksis :

Dag(datum)

Argument:

Die vereiste datumargument is enige Variant , numeriese uitdrukking, string uitdrukking, of enige kombinasie. Dit verteenwoordig 'n datum. As die datum Null insluit, sal dit ook Null terugstuur.

Kodebrokkie:

4770

Uitvoer:

Soos jy kan sien, met behulp van die VBA-kodes het ons gevind dat die dag van die gegewe datum 12 is.

Verwante inhoud: VBA-formaatfunksie in Excel (8 gebruike met voorbeelde)

6. VBA Maandfunksie as Datum

Dit gee 'n Variant (Geheelgetal) terug wat 'n reële getal tussen 1 en 12 definieer,inklusief, wat die maand van die jaar oordra.

Sintaksis :

Maand(datum)

Argument:

Die vereiste datumargument is enige Variant, numeriese uitdrukking, string-uitdrukking of enige kombinasie. Dit verteenwoordig 'n datum. As die datum Null insluit, sal dit ook Null terugstuur.

Kodebrokkie:

9166

Uitvoer:

Verwante inhoud: Hoe om VBA regte funksie in Excel te gebruik (6 voorbeelde)

Soortgelyke lesings

  • Hoe om die VBA Environ-funksie te gebruik (4 voorbeelde)
  • Hoe om VBA en funksie in Excel te gebruik (4 voorbeelde)
  • VBA If – Then – Else Statement in Excel (4 Voorbeelde)
  • Hoe om VBA Abs-funksie in Excel te gebruik (9 Voorbeelde)
  • Hoe om Concatenate in Excel VBA te gebruik (4 metodes)

7. Maandnaam-funksie

Dit gee 'n string terug wat die gespesifiseerde maand demonstreer.

Sintaksis :

MaandNaam(maand, [afkorting ])

Argument:

maand: Dit word vereis. Die numeriese titel van die maand. Januarie is byvoorbeeld 1, Februarie is 2, ensovoorts.

afkort: Dit is opsioneel. Boole-waarde wat aandui of die maandnaam verkort moet word. As dit oorgeslaan word, is die verstek Onwaar, wat aandui dat die maandnaam nie afgekort is nie.

Kodebrokkie:

6975

Uitvoer:

Soos jy kan sien, het ons die maandnaam gevinddeur hierdie VBA-datumfunksie.

8. Weekdagfunksie

Dit gee 'n Variant ( Geheelgetal ) terug met 'n reële getal wat die dag van die week.

Sintaksis :

Weekdag(datum, [ eerstedag van die week ])

Argument:

datum: Die vereiste datumargument is enige Variant, numeriese uitdrukking, string uitdrukking, of enige kombinasie. Dit verteenwoordig 'n datum. As die datum Null insluit, sal dit ook Null teruggee.

eerstedag van die week: Opsioneel. 'n Konstante wat die eerste dag van die week definieer. Indien nie vasgestel nie, word Sondag aanvaar.

Die eerstedagvanweek argument het hierdie instellings:

vbSondag – gebruik Sondag as die voorste dag van die week.

vbMonday – gebruik Maandag as die eerste dag van die week.

vbDinsdag – funksioneer Dinsdag as die eerste dag van die week.

vbWednesday – gebruik Woensdag as die eerste dag van die week.

vbThursday – werk Donderdag as die eerder dag van die week.

vbFriday – gebruik Vrydag as die eerste dag van die week.

vbSaterdag – werk Saterdag as die eerste dag van die week .

vbUseSystemDayOfTheWeek – gebruik die eerste dag van die week wat deur jou toestel se instelling gedefinieer word.

Returnparameters

Nou, hierdie funksie gee 'n heelgetal getal terug. Dus, die betekenis van daardie heelgetalle is die volgende:

1

Hugh West is 'n hoogs ervare Excel-afrigter en ontleder met meer as 10 jaar ondervinding in die bedryf. Hy het 'n Baccalaureusgraad in Rekeningkunde en Finansies en 'n Meestersgraad in Besigheidsadministrasie. Hugh het 'n passie vir onderrig en het 'n unieke onderrigbenadering ontwikkel wat maklik is om te volg en te verstaan. Sy kundige kennis van Excel het duisende studente en professionele persone wêreldwyd gehelp om hul vaardighede te verbeter en uit te blink in hul loopbane. Deur sy blog deel Hugh sy kennis met die wêreld, en bied gratis Excel-tutoriale en aanlyn opleiding aan om individue en besighede te help om hul volle potensiaal te bereik.