VBA-datofunksjon (12 bruk av makroer med eksempler)

  • Dele Denne
Hugh West

Innholdsfortegnelse

I Microsoft Visual Basic Application er datofunksjoner eller andre daterelaterte konsepter avgjørende for å utføre ulike operasjoner i datasettet ditt. Du kan komme i ulike situasjoner hvor du må bruke disse funksjonene. I denne opplæringen vil du lære om datofunksjonen til VBA med passende eksempler og riktige illustrasjoner. Vi vil også gi deg flere datofunksjoner som du kan implementere i regnearket ditt.

Last ned Practice Workbook

Bruk av VBA Date.xlsm

Introduksjon til VBA-datofunksjonen

Excel kategoriserer datoer i funksjonen Dato/klokkeslett . Det er en innebygd funksjon. Vi kan bruke den i VBA-makroer for å utføre alle daterelaterte operasjoner.

Før du starter med Dato-funksjonen, må du kjenne til Datovariablene i VBA .

⏺ Syntaks

Dato()

⏺ Argumenter Forklaringer

Det er ingen argumenter .

⏺ Returnerer

Returnerer gjeldende dato.

⏺ Tilgjengelig i

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

⏺ Eksempel

Som du vet, er det ingen argumenter, du kan bare legge det inn som følgende:

5942

Når vi jobber med datofunksjonen, gir vi ingen parentes i VBA-kodene som dette eksemplet.

Utdata :

12Søndag

2 –       Mandag

3 –       Tirsdag

4 –       Onsdag

5 –       Torsdag

6 –       Fredag

7 –       Lørdag

Kodebit:

3816

Utdata:

Som du kan se, returnerer VBA-datofunksjonen 4. Det betyr at Onsdag.

Relatert innhold: Hvordan bruke Fix-funksjonen i Excel VBA (4 eksempler)

9. VBA WeekdayName-funksjon

Returnerer en streng som viser den begrensede dagen i uken.

Syntaks :

WeekdayName(weekday, abbreviate, firstdayofweek)

Argument:

ukedag: Obligatorisk felt. Den numeriske identifikasjonen for ukedagen. Den numeriske verdien for hver dag avhenger av innstillingen for førstedag i uken.

forkorte: Dette er valgfritt. Boolsk verdi som tilsier om ukedagsnavnet skal forkortes. Hvis den hoppes over, er standarden False, noe som betyr at ukedagsnavnet ikke er forkortet eller forkortet.

førstedag i uken: Valgfritt felt. Numerisk verdi som angir den første dagen i uken. Det kan ha forskjellige verdier.

Argumentet firstdayofweek kan ha følgende verdier:

vbSunday – bruker søndag som den fremste dagen i uken.

vbMonday – bruker mandag som første dag i uken.

vbTuesday – opererer tirsdag som den første dag avuken.

vbWednesday – bruker onsdag som den første dagen i uken.

vbThursday – fungerer torsdag som den heller dagen i uken. .

vbFriday – bruker fredag ​​som den første dagen i uken.

vbSaturday – fungerer lørdag som den første dagen i uken.

vbUseSystemDayOfTheWeek – bruker den første dagen i uken som er definert av enhetens innstilling.

Kodebit:

1475

Utdata:

Som du kan se, viser VBA-kodene ovenfor ukedagsnavnet.

Relatert innhold: Hvordan å bruke VBA WeekdayName-funksjon i Excel (2 eksempler)

10. Årsfunksjon i VBA Dato

Den returnerer en variant (heltall) som har et reelt tall som uttrykker året.

Syntaks :

År(dato)

Argument:

Det nødvendige datoargumentet er en hvilken som helst variant, numerisk uttrykk, strenguttrykk eller en hvilken som helst kombinasjon. Den representerer en dato. Hvis datoen inkluderer Null, vil den også returnere Null.

Kodebit:

2579

Utdata:

Her kan du se året for den gitte datoen etter implementering av VBA-koden.

Les mer: Hvordan bruke VBA Replace-funksjonen i Excel ( 11 applikasjoner)

11. FormatDateTime-funksjonen

Denne funksjonen returnerer et uttrykk formatert som en dato eller et klokkeslett.

Syntaks :

FormatDateTime(Dato, [ NavngittFormat])

Argument:

Dato: Obligatorisk felt. Datouttrykk som skal formateres.

NamedFormat: Dette er valgfritt. Det er en numerisk verdi som viser formatet for dato/klokkeslett. Hvis utelatt, brukte den vbGeneralDate .

NamedFormat kan ha følgende verdier:

vbGeneralDate (0): Vis en dato og/eller tid. Hvis det er en datodel, uttrykk den som en kort dato. Hvis det er en tidsdel, vis den som en lang tid. Begge deler vises hvis de finnes.

vbLongDate(1): Portrayer en dato ved å bruke den lange datokonfigurasjonen valgt i datamaskinens regionale innstillinger.

vbShortDate (2): Vis en dato ved å bruke det korte datoformatet som er spesifisert i datamaskinens regionale innstillinger.

vbLongTime(3): Vis en tid ved å bruke tidsformatet spesifisert i datamaskinens regionale innstillinger.

vbShortTime(4): Vis en tid ved å bruke 24-timersformatet (tt:mm).

Kodebit:

3467

Utdata:

Du vil se følgende dialogbokser etter å ha kjørt koden:

Her kan du se alle tids- og datoformatene i VBA.

Les mer: Hvordan bruke VBA TimeValue-funksjonen (6 relevante eksempler)

12. VBA CDate-funksjon

Funksjonen konverterer et gyldig dato- og tidsuttrykk til en typisk dato.

Syntaks :

CDato(dato)

Argument:

Det nødvendige datoargumentet er en hvilken som helst variant, numerisk uttrykk, strenguttrykk eller en hvilken som helst kombinasjon. Den representerer en dato. Hvis datoen inkluderer Null, vil den også returnere Null.

Kodebit:

1250

Utdata:

Som du kan se, returnerte VBA-koden vår nettopp et typisk datoformat for Excel.

Relatert innhold: Hvordan bruke VBA DIR-funksjonen i Excel (7 eksempler)

Eksempler på VBA-dato

I de følgende delene vil vi gi deg tre praktiske og passende eksempler på dato ved bruk av VBA. Disse eksemplene vil inneholde daterelaterte problemer og deres løsninger. Vi anbefaler at du leser og øver på alle disse eksemplene for å forbedre VBA-kunnskapene dine. La oss komme inn i det.

1. Beregn forfalte dager ved å bruke Dato i VBA

Betydningen av forsinket skjer sent, eller etter fristen. For sent, spesielt, forbi en frist eller for sent til å oppfylle et krav.

Anta at du må levere en oppgave som skal sendes inn på søndag. Men det er tirsdag, og du har ikke sendt den inn. Du kan kalle det to forsinkede dager.

Ta en titt på følgende datasett:

Her har vi et datasett med noen studenter og oppgaveinnleveringen deres Dato. Du kan se siste dato for innlevering. Målet vårt er å finne forfallsdatoen basert på innleveringsdatoen. Nå, for å oppnå dette, følg disse trinnene:

📌 Trinn

  • Trykk først Alt+F11 på tastaturet for å åpne VBA-editoren.
  • Deretter velger du Sett inn > Modul .

  • Deretter skriver du inn følgende kode:
4468

Vi brukte ABS-funksjon for å fjerne minustegnet.

  • Deretter lagrer du filen.
  • Deretter trykker du Alt+F8 på tastaturet for å åpne Macro-dialogboksen.
  • Neste, velg
  • Deretter klikker du på Kjør .

Som du kan se, har vi brukt datoen i VBA og funnet de forfalte dagene.

Lignende avlesninger

  • Hvordan bruke VBA Space Funksjon i Excel (3 eksempler)
  • Bruk VBA ChDir-funksjon i Excel (4 egnede eksempler)
  • Hvordan bruke IsNull-funksjonen i Excel VBA (5 eksempler)
  • Bruk VBA While Wend Statement i Excel (4 eksempler)
  • Hvordan kalle en Sub i VBA i Excel (4 Eksempler)

2. Finn fødselsår fra dato ved hjelp av VBA

Nå kan du finne året fra en bestemt dato. Dette er ganske enkelt å finne.

Ta en titt på følgende datasett:

Her kan du se fødselsdatoen til noen personer. Målet vårt er å trekke ut fødselsåret fra datoen og også fødselsåret for den siste oppføringen Elizabeth.

📌 Trinn

  • Trykk først Alt+F11 på tastaturet for å åpne VBA-editoren.
  • Velg deretter Sett inn>modul .

  • Etter det skriver dufølgende kode:
7026
  • Deretter lagrer du filen.
  • Deretter trykker du Alt+F8 på tastaturet for å åpne makrodialogen boks.
  • Velg deretter finn_år .
  • Klikk deretter på Kjør .

Til slutt kan du se at vi lykkes med å trekke ut fødselsåret fra hver dato. Vi fant også fødselsåret for den siste oppføringen ved å bruke datoen for VBA i Excel.

3. Legg til dager i dato ved hjelp av VBA

Nå kan du definere datovariabelen og bruke den for å legge til datoen. For å utføre dette bruker vi DateAdd metoden til VBA. Du kan bruke denne funksjonen til å legge til dager, måneder og år til en bestemt dato.

Ta en titt på følgende datasett:

Her, du kan se noen navn og noen datoer knyttet til dem. Nå er målet vårt å legge til fem dager til disse gitte datoene og generere en ny dato.

📌 Trinn

  • Trykk først Alt +F11 på tastaturet for å åpne VBA-editoren.
  • Velg deretter Sett inn>modul .

  • Deretter skriver du inn følgende kode:
8855

Her brukte vi "d" som argument i DateAdd-funksjonen. Du kan endre den til "y" eller "m" for å legge til henholdsvis år eller måneder,

  • Deretter lagrer du filen.
  • Deretter trykker du Alt+F8 på tastaturet for å åpne makrodialogboksen.
  • Neste, velg.
  • Klikk deretter på Kjør .

Som du kanse, vi har lagt til dager i en dato ved å bruke datoen i VBA. Nå kan du endre koden i henhold til ditt valg.

💬 Ting å huske

VBA-datofunksjonen fungerer faktisk som TODAY-funksjonen i Excel.

VBA DATE er en ikke-flyktig funksjon i excel. Det betyr at den vil beholde dataene selv om det er et brudd i strømforsyningen.

I utgangspunktet lagrer VBA Dato-verdier som DATO på tidspunktet for implementering.

Så, hvis du prøver å tilordne en datovariabel som en streng/tekst, vil det forårsake en feil.

Standardverdien for Dato er 0: 00:00 (midnatt) 1. januar 0001.

Konklusjon

For å konkludere, håper jeg denne opplæringen har gitt deg en del nyttig kunnskap om datoen i VBA-koder. Vi anbefaler at du lærer og bruker alle disse instruksjonene på datasettet ditt. Last ned øvelsesboken og prøv disse selv. Gi også gjerne tilbakemelding i kommentarfeltet. Din verdifulle tilbakemelding holder oss motiverte til å lage opplæringsprogrammer som dette.

Ikke glem å sjekke nettsiden vår Exceldemy.com for ulike Excel-relaterte problemer og løsninger.

Fortsett å lære nye metoder og fortsett å vokse!

Datofunksjoner i VBA du bør lære

Nå, i de kommende delene, vil vi vise deg noen ekstra datofunksjoner som du kan bruke til en rekke formål i VBA. Les disse delene for å vite alle mulige måter å jobbe med datoen på i VBA. Vi foreslår at du har dem i arsenalet ditt. Det vil helt sikkert forbedre kunnskapen din.

1. DateAdd-funksjon som Date i VBA

I VBA bruker vi DateAdd-funksjonen til å legge til dager på en bestemt dato. Etter det vil den returnere den resulterende datoen.

Syntaks:

DateAdd(intervall, tall, dato)

Argumenter:

intervall: Det er påkrevd. Strenguttrykk er tidsintervallet du vil legge til.

nummer: Obligatorisk. Det er et numerisk uttrykk som er antallet intervaller du vil legge til. Den kan være positiv (for å få datoer i fremtiden) eller negativ (for å få datoer i fortiden).

dato: Den opprinnelige datoen/klokkeslettet.

Nå kan intervall argumentene ha følgende innstillinger:

åååå –   År

q     – Kvartal

m    – Måned

å –    Dag i året

d     – Dag

w    – Ukedag

ww – Uke

t    – Time

n    – Minutt

s    – Andre

Kodebit :

7417

Utdata:

Som du kan se, la den til 15 datoer i gjeldende dato iVBA.

Les mer: Hvordan bruke IsDate-funksjonen i VBA (3 eksempler)

2. DateDiff-funksjonen i VBA

DateDiff-funksjonen returnerer en Variant (Long) som bestemmer antall tidsgap mellom to spesifiserte datoer.

Syntaks :

DateDiff( interval, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

Argumenter:

intervall: Det er Obligatorisk. String-uttrykk er tidsintervallet du vil legge til String-uttrykk som er tidsgapet du bruker til å beregne skillet mellom to datoer.

date1,date2 : Obligatorisk; Variant (dato). To datoer du ønsker å bruke i beregningen.

førstedag i uken: Valgfritt. En konstant som definerer den første dagen i uken. Hvis ikke løst, antas søndag.

første uke i året: Valgfritt. En konstant som etablerer den første uken i året. Hvis den ikke er angitt, er den første uken ment å være uken der 1. januar vises.

Nå kan intervall argumentene ha følgende innstillinger:

åååå –   År

kv     – Kvartal

m    – Måned

å –    Dag i året

d     – Dag

w    – Ukedag

ww – Uke

t    – Time

n    – Minutt

s    – Andre

firstdayofweek argumentet har disse innstillingene:

vbSunday –bruker søndag som den fremste dagen i uken.

vbMonday – bruker mandag som første dag i uken.

vbTuesday – opererer tirsdag som den første dagen i uken.

vbWednesday – bruker onsdag som den første dagen i uken.

vbThursday – opererer torsdag som heller ukedag.

vbFriday – bruker fredag ​​som den første dagen i uken.

vbSaturday – fungerer lørdag som første dag i uken.

vbUseSystemDayOfTheWeek – bruker den første dagen i uken som er definert av enhetens innstilling.

The first weekofyear har disse innstillingene:

vbFirstJan1 – bruker uken som inneholder 1. januar.

vbFirstFourDays – bruker den første uken som har minst fire dager i det nye året.

vbFirstFullWeek – kjører den første hele uken i året.

vbSystem – bruker den første uken i år som definert av enhetens plassering.

Kodebit:

2479

Out put :

Til slutt returnerer den forskjellen mellom de to datoene i VBA.

Les mer: Hvordan bruke VBA DateDiff-funksjonen i Excel (9 eksempler)

3. DatePart-funksjonen som dato

DatePart-funksjonen returnerer en variant (heltall) som inneholder den definerte delen av en oppgitt dato.

Syntaks :

DatoPart(intervall, dato, [ førstedag i uken, [firstweekofyear ]])

Argumenter:

intervall: Det er påkrevd. String-uttrykk er tidsintervallet du vil legge til String-uttrykk som er tidsgapet du bruker til å beregne skillet mellom to datoer.

dato: Obligatorisk; Variant (dato). Datoen du vil bruke i beregningen.

førstedag i uken: Valgfritt. En konstant som definerer den første dagen i uken. Hvis ikke løst, antas søndag.

første uke i året: Valgfritt. En konstant som etablerer den første uken i året. Hvis den ikke er angitt, er den første uken ment å være uken der 1. januar vises.

Nå kan intervall argumentene ha følgende innstillinger:

åååå –   År

kv     – Kvartal

m    – Måned

å –    Dag i året

d     – Dag

w    – Ukedag

ww – Uke

t    – Time

n    – Minutt

s    – Andre

firstdayofweek argumentet har disse innstillingene:

vbSunday – bruker søndag som den fremste dagen i uken.

vbMonday – bruker mandag som den første dagen i uken.

vbTuesday – opererer tirsdag som den første dagen i uken.

vbWednesday – bruker onsdag som den første dagen i uken.

vbThursday – fungerer torsdag som snarere dagen iuke.

vbFriday – bruker fredag ​​som den første dagen i uken.

vbSaturday – opererer lørdag som den første dagen i uken.

vbUseSystemDayOfTheWeek – bruker den første dagen i uken som er definert av enhetens innstilling.

firstweekofyear har disse verdiene:

vbFirstJan1 – opererer uken inkludert 1. januar.

vbFirstFourDays – bruker den første uken som har maksimalt underdimensjonert fire dager i det nye året.

vbFirstFullWeek – bruker den første hele uken i året.

vbSystem – bruker den første uken i året som valgt etter enhetens plassering.

Kodebit :

3860

Utgang :

På denne måten kan du bruke denne datofunksjonen i VBA-koder.

Les mer: Hvordan bruke VBA FileDateTime-funksjonen i Excel (3 bruksområder)

4. DateSerial-funksjon

Du kan se en dato basert på et år, måned og dag ved å bruke funksjonen DateSerial .

Syntaks:

DateSerial(år, måned, dag)

Argumenter:

år – Obligatorisk felt. Et tall mellom 100 og 9999, inklusive, eller et numerisk uttrykk som symboliserer året.

måned – Obligatorisk felt. En heltallsverdi som definerer måneden.

dag – Obligatorisk felt. En heltallsverdi som beskriver dagen.

Kodebit:

2099

Output :

Les mer: Hvordan bruke VBA TimeSerial i Excel (3 eksempler)

4. VBA DateValue-funksjonen

Nå bruker vi DateValue-funksjonen til å definere en dato.

Syntaks :

DateValue(dato)

Argument:

Her er dato argumentet vanligvis et strenguttrykk som beskriver en dato fra 1. januar 100 , til og med 31. desember 9999. Uansett kan datoen videre et hvilket som helst uttrykk som kan symbolisere en dato, et klokkeslett eller både en dato og et klokkeslett i det området.

Kodebit:

1425

Utgang :

Som du kan se, brukte vi datofunksjonen i VBA-koder.

5. Dagsfunksjon i VBA

Den returnerer en variant (heltall) som bestemmer et reelt tall mellom 1 og 31, inklusive, som formidler dagen i måneden.

Syntaks :

Dag(dato)

Argument:

Det påkrevde datoargumentet er en hvilken som helst variant , numerisk uttrykk, strenguttrykk eller en hvilken som helst kombinasjon. Den representerer en dato. Hvis datoen inkluderer Null, vil den også returnere Null.

Kodebit:

3201

Utdata:

Som du kan se, ved å bruke VBA-kodene fant vi ut at dagen for den gitte datoen er 12.

Relatert innhold: VBA-formatfunksjon i Excel (8 bruksområder med eksempler)

6. VBA-månedsfunksjon som dato

Den returnerer en variant (heltall) som definerer et reelt tall mellom 1 og 12,inkluderende, som viser måneden i året.

Syntaks :

Måned(dato)

Argument:

Det nødvendige datoargumentet er en hvilken som helst variant, numerisk uttrykk, strenguttrykk eller en hvilken som helst kombinasjon. Den representerer en dato. Hvis datoen inkluderer Null, vil den også returnere Null.

Kodebit:

5991

Utdata:

Relatert innhold: Hvordan bruke VBA Right Function i Excel (6 eksempler)

Lignende avlesninger

  • Hvordan bruke VBA Environ-funksjonen (4 eksempler)
  • Hvordan bruke VBA og funksjon i Excel (4 eksempler)
  • VBA If – Then – Else Statement i Excel (4 eksempler)
  • Hvordan bruke VBA Abs-funksjonen i Excel (9 eksempler)
  • Hvordan bruke Concatenate i Excel VBA (4 metoder)

7. MonthName-funksjon

Den returnerer en streng som viser den angitte måneden.

Syntaks :

Månedsnavn(måned, [forkorte ])

Argument:

måned: Det er påkrevd. Månedens numeriske tittel. For eksempel er januar 1, februar er 2, og så videre.

forkorte: Det er valgfritt. Boolsk verdi som viser om månedsnavnet skal forkortes. Hvis den hoppes over, er standardverdien False, noe som indikerer at månedsnavnet ikke er forkortet.

Kodebit:

1400

Utdata:

Som du kan se, fant vi månedsnavnetav denne VBA-datofunksjonen.

8. Ukedagsfunksjon

Den returnerer en variant ( heltall ) som har et reelt tall som uttrykker dagen for uke.

Syntaks :

Ukedag(dato, [ førstedag i uken ])

Argument:

dato: Det nødvendige datoargumentet er en hvilken som helst variant, numerisk uttrykk, strenguttrykk eller en hvilken som helst kombinasjon. Den representerer en dato. Hvis datoen inkluderer Null, vil den også returnere Null.

førstedag i uken: Valgfritt. En konstant som definerer den første dagen i uken. Hvis det ikke er løst, antas søndag.

Argumentet firstdayofweek har disse innstillingene:

vbSunday – bruker søndag som den fremste dagen i uken.

vbMonday – bruker mandag som første dag i uken.

vbTuesday – opererer tirsdag som den første ukedag.

vbWednesday – bruker onsdag som den første dagen i uken.

vbThursday – opererer torsdag som den heller dagen for uken.

vbFriday – bruker fredag ​​som første dag i uken.

vbSaturday – fungerer lørdag som den første dagen i uken. .

vbUseSystemDayOfTheWeek – bruker den første dagen i uken som er definert av enhetens innstilling.

Returparametere

Nå returnerer denne funksjonen et heltall. Så betydningen av disse heltallene er følgende:

1

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.