Excel VBA DatePart

Anta att vi har datum i våra data och vi vet inte varken vilken vecka eller vilken del av månaden det är. Det finns olika sätt att ta reda på. I Excel finns det några komplexa formler som vi måste utföra för att hitta det. Till exempel, om det finns ett datum, 02-feb-2019, är beräkningen för att ta reda på kvartalet för detta datum i Excel komplex. VBA ger oss dock en mycket praktisk funktion som heter DatePart som utför sådana beräkningar för oss.

Jag har förklarat ovan nu varför vi använder DatePart-funktionen i VBA. Den här funktionen används för att ta reda på den del av datumet, vare sig det är en dag, en månads vecka eller till och med timmar eller sekunder. Denna funktion returnerar heltalet som en utgång. För att förstå mer om denna funktion låt oss först gå igenom syntaxen för denna funktion i detalj.

Syntax för DatePart i Excel VBA

Låt oss titta på syntaxen nedan för DatePart i Excel VBA.

Som vi ser finns det totalt fyra argument för denna funktion. De två första argumenten är obligatoriska medan de övriga två argumenten är valfria. Men om vi inte tillhandahåller de två sista argumenten har VBA sina egna standardvärden för det.

  • Intervall: Detta argument tillhandahålls som en sträng till den här funktionen. Detta argument kan vara en månad, vecka, år, dag eller till och med timme eller minuter eller sekunder. Till exempel kommer syntaxen för ett kvartal att vara “q”, eller för året kommer syntaxen att “yyyy” och så vidare.
  • Datum: Detta är inmatningsdatumet, vi tillhandahåller denna funktion för vars del vi vill ta reda på.
  • FirstDayofWeek: Detta är ett valfritt argument som vi ger till denna funktion. Men om vi inte tillhandahåller den första dagen i veckan till funktionen, behandlar VBA automatiskt SUNDAY som den första veckodagen. Det finns olika syntax för att tillhandahålla detta argument som är följande:

vbUseSystem (denna syntax använder NLS API SETTING), vbSunday (detta är standardargumentet), vbMonday, vbTuesday, vbWednesday, vbThursday, vbFriday, vbSaturday (Rest alla dessa argument är valfria att anges)

  • FirstWeekofYear: Detta är också ett valfritt argument för den här funktionen. Men igen om vi inte tillhandahåller detta argument VBA automatiskt överväger den första veckan vilken vecka som är den första från 1 januari. Också för detta argument finns det olika syntaxer, de är som följer:

vbUseSystem, vbFirstJan1 (Detta är standard), vbFirstFourDays (Detta argument börjar med den första veckan som har minst de första fyra dagarna på det nya året), vbFirstFullWeek (Detta argument börjar med årets första hela vecka).

Nu har vi lärt oss om funktionerna och dess argument låt oss testa denna funktion i exempel.

Hur använder jag DatePart-funktionen i Excel VBA?

Nedan är de olika exemplen att använda DatePart-funktionen i Excel med VBA-kod.

Du kan ladda ner denna VBA DatePart Excel-mall här - VBA DatePart Excel-mall

Excel VBA DatePart - Exempel # 1

Låt oss ta en inmatning från användaren som datum och del som användaren vill ta reda på, sedan använder vi DatePart-funktionen och visar resultatet.

Följ stegen nedan för att använda DatePart-funktionen i Excel VBA:

Steg 1: Från utvecklarens flik i kodsektionen klickar du på Visual basic som tar oss till VB Editor.

Steg 2: En gång i VB-redigeraren, sätt in en ny modul i VBA-projektet som visas nedan.

Steg 3: Dubbelklicka nu på modulen och börja förklara en ny delprocess som visas nedan.

Koda:

 Sub Sample () Slut Sub 

Steg 4: Definiera tre variabler en som sträng och datum som kommer att innehålla datumdel och datum för vår ingång och en annan som ett heltal som lagrar vår utgång.

Koda:

 Subprov () Dim Dt som datum, Prt som sträng, res som heltal slut sub 

Steg 5: I datumvariabeln frågar användaren om inmatningsdatumet.

Koda:

 Underprov () Dim Dt som datum, Prt som sträng, res som heltal Dt = InputBox ("Ange ett datum") Slut Sub 

Steg 6: I Prt, som är en del, mata in användaren för datumdelen vi behöver ta reda på.

Koda:

 Underprov () Dim Dt som datum, Prt som sträng, res som heltal Dt = InputBox ("Ange ett datum") Prt = InputBox ("Ange datumdel") Slut Sub 

Steg 7: Nu i Variable Res, vilket är resultatet, låt oss ta reda på resultatet med hjälp av DatePart-funktionen enligt följande.

Koda:

 Underprov () Dim Dt som datum, Prt som sträng, res som heltal Dt = InputBox ("Ange ett datum") Prt = InputBox ("Ange datumdel") Res = DatePart (Prt, Dt) Slut Sub 

Steg 8: Visa värdet som är lagrat i Res med funktionen msgbox.

Koda:

 Underprov () Dim Dt som datum, Prt som sträng, res som heltal Dt = InputBox ("Ange ett datum") Prt = InputBox ("Ange datumdel") Res = DatePart (Prt, Dt) MsgBox Res End Sub 

Steg 9: Låt oss nu köra ovanstående kod genom att trycka på F5-tangenten eller genom att klicka på Play-knappen och ange ett datum enligt följande.

Steg 10: Ange värdet för Datumdel.

Steg 11: Tryck på OK för att se resultatet som visas nedan.

Vi får 1 som resultat då det datum vi angav som input faller under årets första kvartal.

Excel VBA DatePart - Exempel # 2

Låt oss nu lämna datumet direkt till funktionen i koden. Följ stegen nedan för att använda DatePart-funktionen i Excel VBA:

Steg 1: Definiera en annan delprocess i samma modul som visas nedan.

Koda:

 Sub Sample1 () Slut Sub 

Steg 2: Definiera en variabel som heltal och en variabel som datum som visas nedan.

Koda:

 Underprov1 () Dim Dt som datum, res som heltal slut sub 

Steg 3: Ange ett datum till variabeln.

Koda:

 Underprov1 () Dim Dt som datum, res som heltal Dt = # 2/2/2019 # Slut Sub 

Steg 4: I Res-variabeln, låt oss beräkna datumet med datumPart-funktionen.

Koda:

 Underprov1 () Dim Dt som datum, res som heltal Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) End Sub 

Steg 5: Visa värdet som är lagrat i variabeln med funktionen msgbox.

Koda:

 Underprov1 () Dim Dt som datum, res som heltal Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Steg 6: Kör ovanstående kod genom att trycka på F5-tangenten eller genom att klicka på Play-knappen för att få följande resultat.

Det datum vi angav som input faller under den femte veckan på året.

Excel VBA DatePart - Exempel # 3

Låt oss prova ett exempel från det verkliga livet. I ark 1 i cell A1 har jag använt formeln = Nu () för att få aktuellt datum och tid och vi kommer att ta reda på datumdelen för den här cellen.

Följ stegen nedan för att använda DatePart-funktionen i Excel VBA:

Steg 1: Definiera en annan delprocedur i samma modul enligt följande.

Koda:

 Sub Sample2 () Slut Sub 

Steg 2: Definiera två variabler som Date och en annan som ett heltal.

Koda:

 Sub Sample2 () Dim Dt As Date, Res As Integer End Sub 

Steg 3: I variabel Dt-lagring är värdet på cell A1 enligt följande.

Koda:

 Underprov2 () Dim Dt som datum, Res som heltal Dt = Område ("A1"). 

Steg 4: Låt oss nu i res-variabel beräkna veckodelen för ingången med DatePart-funktionen.

Koda:

 Subprov2 () Dim Dt som datum, Res som heltal Dt = Område ("A1"). Värde Res = DatePart ("ww", Dt) End Sub 

Steg 5: Visa värdet som är lagrat i variabeln med Msgbox-funktionen.

Koda:

 Subprov2 () Dim Dt som datum, Res som heltal Dt = Område ("A1"). Värde Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Steg 6: Kör ovanstående kod genom att trycka på F5-tangenten eller genom att klicka på Play-knappen för att få följande resultat.

Det nuvarande datumet är 25 juli, vilket är den 30: e veckan året 2019.

Saker att komma ihåg

  • Det är datumfunktion men returnerar ett heltalvärde.
  • De två första argumenten är obligatoriska medan de övriga två argumenten är valfria.
  • VBA har sina egna standardargument om vi inte tillhandahåller de två sista argumenten till DatePart-funktionen.
  • Den här funktionen är en VBA-funktion och inte en kalkylfunktion.

Rekommenderade artiklar

Detta är en guide till VBA DatePart. Här diskuterar vi hur du använder DatePart-funktionen i Excel med hjälp av VBA-kod tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. VBA DateAdd
  2. I DAG Formel i Excel
  3. VBA-datumfunktion
  4. NU Excel-funktion
  5. Hur använder man VBA-datumformat i Excel?
  6. Var ska man skriva kod i VBA?

Kategori: