Excel VBA DatePart

Antag, at vi har datoer i vores data, og vi ved ikke, hverken hvilken uge eller hvilken del af måneden det er. Der er forskellige måder at finde ud af. I Excel er der nogle komplekse formler, som vi er nødt til at udføre for at finde det. For eksempel, hvis der er en dato, 02-feb-2019, er beregningen for at finde ud af kvartalet for denne dato i excel kompleks. Dog giver VBA os en meget praktisk funktion kaldet DatePart, der udfører sådanne beregninger for os.

Jeg har forklaret ovenfor nu, hvorfor vi bruger DatePart-funktion i VBA. Denne funktion bruges til at finde ud af datoen, det være sig en dag, en måned uge kvartal eller endda timer eller sekunder. Denne funktion returnerer heltalet som output. For at forstå mere om denne funktion skal vi først gennemgå syntaxen for denne funktion i detaljer.

Syntaks for DatePart i Excel VBA

Lad os se på nedenstående syntaks for DatePart i Excel VBA.

Som vi kan se, er der i alt fire argumenter leveret til denne funktion. De to første argumenter er obligatoriske, mens de resterende to argumenter er valgfri. Men hvis vi ikke giver de to sidste argumenter, har VBA sine egne standardværdier for det.

  • Interval: Dette argument leveres som en streng til denne funktion. Dette argument kan være en måned, uge, år, dag eller endda time eller minutter eller sekunder. For eksempel vil syntaks for et kvartal være “q”, eller for året vil syntaksen være “åååå” og så videre.
  • Dato: Dette er inputdatoen, vi leverer til denne funktion, hvis del vi vil finde ud af.
  • FirstDayofWeek: Dette er et valgfrit argument, som vi giver til denne funktion. Men hvis vi ikke leverer firstdayofweek til funktionen, behandler VBA automatisk SUNDAY som den første ugedag. Der er forskellige syntaks til at give dette argument, som er som følger:

vbUseSystem (Denne syntaks bruger NLS API SETTING), vbSunday (dette er standardargumentet), vbMonday, vbTuesday, vbWednesday, vbThursday, vbFriday, vbSaturday (Rest alle disse argumenter er valgfri at blive givet)

  • FirstWeekofYear: Dette er også et valgfrit argument for denne funktion. Men igen, hvis vi ikke giver dette argument, overvejer VBA automatisk den første uge, uanset hvilken uge der er den første fra 1. januar. Også for dette argument er der forskellige syntakser, de er som følger:

vbUseSystem, vbFirstJan1 (Dette er standard), vbFirstFourDays (Dette argument starter med den første uge, der har mindst de første fire dage i det nye år), vbFirstFullWeek (Dette argument starter med den første hele uge af året).

Nu har vi lært om funktionerne og dens argumenter, lad os teste denne funktion i eksempler.

Sådan bruges DatePart-funktionen i Excel VBA?

Nedenfor er de forskellige eksempler til brug af DatePart-funktionen i Excel ved hjælp af VBA-kode.

Du kan downloade denne VBA DatePart Excel-skabelon her - VBA DatePart Excel-skabelon

Excel VBA DatePart - Eksempel # 1

Lad os tage et input fra brugeren som dato og del, som brugeren vil finde ud af, så bruger vi DatePart-funktionen og viser resultatet.

Følg nedenstående trin for at bruge DatePart-funktion i Excel VBA:

Trin 1: Fra udviklerens fane i kodesektionen klik på Visual basic, der fører os til VB Editor.

Trin 2: Når du først er i VB Editor, skal du indsætte et nyt modul i VBA-projektet som vist nedenfor.

Trin 3: Dobbeltklik nu på modulet, og start en ny underprocedure som vist nedenfor.

Kode:

 Undereksempel () Slutundert 

Trin 4: Definer tre variabler, den ene som streng og dato, som vil indeholde datodelen og datoen for vores input og en anden som et heltal, der gemmer vores output.

Kode:

 Underprøve () Dim Dt som dato, Prt som streng, res som heltal slut sub 

Trin 5: I datavariablen skal du spørge input fra brugeren om inputdatoen.

Kode:

 Underprøve () Dim Dt som dato, Prt som streng, res som heltal Dt = InputBox ("Indtast en dato") slut Sub 

Trin 6: I Prt, som er en del, skal du indtaste input fra brugeren for datodelen, vi har brug for at finde ud af.

Kode:

 Undereksempel () Dim Dt som dato, Prt som streng, res som heltal Dt = InputBox ("Indtast en dato") Prt = InputBox ("Indtast datodel") End Sub 

Trin 7: Nu i Variable Res, som er resultatet, lad os finde ud af resultatet ved hjælp af DatePart-funktionen som følger.

Kode:

 Undereksempel () Dim Dt som dato, Prt som streng, res som heltal Dt = InputBox ("Indtast en dato") Prt = InputBox ("Indtast datodel") Res = DatePart (Prt, Dt) Slut Sub 

Trin 8: Vis den værdi, der er gemt i Res ved hjælp af msgbox-funktionen.

Kode:

 Undereksempel () Dim Dt som dato, Prt som streng, res som heltal Dt = InputBox ("Indtast en dato") Prt = InputBox ("Indtast dato-del") Res = DatePart (Prt, Dt) MsgBox Res End Sub 

Trin 9: Lad os nu køre ovenstående kode ved at trykke på F5-tasten eller ved at klikke på knappen Play og give en dato som følger.

Trin 10: Indtast værdien for Datodel.

Trin 11: Tryk på OK for at se resultatet som vist nedenfor.

Vi får 1 som resultat, da den dato, vi leverede som input, falder i årets første kvartal.

Excel VBA DatePart - Eksempel # 2

Denne gang lad os give datoen direkte til funktionen i koden. Følg nedenstående trin for at bruge DatePart-funktion i Excel VBA:

Trin 1: I det samme modul skal du definere en anden underprocedure, som vist nedenfor.

Kode:

 Underprøve1 () Slutundert 

Trin 2: Definer en variabel som heltal og en variabel som dato som vist nedenfor.

Kode:

 Underprøve1 () Dim Dt som dato, res som heltal slut sub 

Trin 3: Angiv en dato til variablen.

Kode:

 Underprøve1 () Dim Dt som dato, res som heltal Dt = # 2/2/2019 # End Sub 

Trin 4: I Res-variablen, lad os beregne ugen for datoen ved hjælp af DatePart-funktionen.

Kode:

 Underprøve1 () Dim Dt som dato, res som heltal Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) End Sub 

Trin 5: Vis den værdi, der er gemt i variablen vha. Funktionen msgbox.

Kode:

 Underprøve1 () Dim Dt som dato, res som heltal Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Trin 6: Kør ovenstående kode ved at trykke på F5-tasten eller ved at klikke på knappen Play for at få følgende resultat.

Den dato, vi leverede som input, falder i årets femte uge.

Excel VBA DatePart - Eksempel # 3

Lad os prøve et eksempel fra det virkelige liv. I ark 1 i celle A1 har jeg brugt formlen = Nu () til at få den aktuelle dato og tid, og vi finder ud af datodelen for denne celle.

Følg nedenstående trin for at bruge DatePart-funktion i Excel VBA:

Trin 1: I det samme modul skal du definere en anden underprocedure som følger.

Kode:

 Undereksempel2 () Slutundert 

Trin 2: Definer to variabler som Date og en anden som et heltal.

Kode:

 Underprøve2 () Dim Dt som dato, res som heltal Slutt 

Trin 3: I variabel Dt-lagring er værdien af ​​celle A1 som følger.

Kode:

 Underprøve2 () Dim Dt som dato, res som heltal Dt = Område ("A1"). 

Trin 4: Lad os nu i res-variabel beregne ugedelen til input ved hjælp af DatePart-funktionen.

Kode:

 Undereksempel2 () Dim Dt som dato, res som heltal Dt = Område ("A1"). Værdi Res = DatePart ("ww", Dt) End Sub 

Trin 5: Vis den værdi, der er gemt i variablen ved hjælp af Msgbox-funktionen.

Kode:

 Underprøve2 () Dim Dt som dato, res som heltal Dt = Område ("A1"). Værdi Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Trin 6: Kør ovenstående kode ved at trykke på F5-tasten eller ved at klikke på knappen Play for at få følgende resultat.

Den aktuelle dato er den 25. juli, hvilket er den 30. uge i året 2019.

Ting at huske

  • Det er datofunktion, men returnerer en heltalværdi.
  • De to første argumenter er obligatoriske, mens de resterende to argumenter er valgfri.
  • VBA har sine egne standardargumenter, hvis vi ikke leverer de to sidste argumenter til DatePart-funktionen.
  • Denne funktion er en VBA-funktion og ikke en regnearkfunktion.

Anbefalede artikler

Dette er en guide til VBA DatePart. Her diskuterer vi, hvordan man bruger DatePart-funktion i Excel ved hjælp af VBA-kode sammen med få praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. VBA DateAdd
  2. DAG Formel i Excel
  3. VBA-datofunktion
  4. NU Excel-funktion
  5. Sådan bruges VBA-datoformat i Excel?
  6. Hvor skal man skrive kode i VBA?

Kategori: