I denne opplæringen skal vi gå gjennom de forskjellige innebygde VBA-datofunksjonene.
VBA -datofunksjon
Du kan bruke datofunksjonen til å returnere gjeldende dato.
Syntaksen til datofunksjonen er Date (). Det har ingen argumenter.
Følgende kode viser deg hvordan du bruker datofunksjonen:
12345678 | Sub UsingTheDateFunction ()Dim datoen som datotheDate = Date ()Debug. Skriv ut datoenSlutt Sub |
Resultatet er:
VBA Now -funksjon
Du kan bruke nå -funksjonen til å returnere gjeldende dato og klokkeslett.
Syntaksen til Now -funksjonen er Now (). Det har ingen argumenter.
Følgende kode viser deg hvordan du bruker nå -funksjonen:
12345678 | Sub UsingTheNowFunction ()Dim datoen som datotheDate = Now ()Debug. Skriv ut datoenSlutt Sub |
Resultatet er:
VBA -tidsfunksjon
Du kan bruke tidsfunksjonen til å returnere gjeldende tid.
Syntaksen til tidsfunksjonen er Time (). Det har ingen argumenter.
Følgende kode viser deg hvordan du bruker tidsfunksjonen:
12345678 | Sub UsingTheTimeFunction ()Dim theTime As DatetheTime = Time ()Debug. Skriv ut tidenSlutt Sub |
Resultatet er:
VBA DateAdd -funksjon
Du kan bruke DateAdd -funksjonen til å legge til et dato/klokkeslett -intervall til en dato eller et klokkeslett, og funksjonen vil returnere den resulterende datoen/klokkeslettet.
Syntaksen til DateAdd -funksjonen er:
DateAdd (Intervall, Nummer, Dato) der:
- Intervall - En streng som angir hvilken type intervall som skal brukes. Intervallet kan være en av følgende verdier:
"D" - dag
"Ww" - uke
"W" - ukedag
"M" - måned
"Q" - kvartal
"Åååå" - år
"Y" - årets dag
"H" - time
"N" - minutt
"S" - andre
- Nummer - Antall intervaller du vil legge til den opprinnelige datoen/klokkeslettet.
- Dato - Den opprinnelige datoen/klokkeslettet.
Merk: Når du bruker datoer i koden, må du omringe dem med # eller anførselstegn.
Følgende kode viser hvordan du bruker DateAdd -funksjonen:
123456789 | Sub UsingTheDateAddFunction ()Dim senere Dato som datolaterDate = DateAdd ("m", 10, "11/12/2019")Debug.Print laterDateSlutt Sub |
Resultatet er:
VBA DateDiff -funksjon
Du kan bruke DateDiff -funksjonen for å få forskjellen mellom to datoer, basert på et spesifisert tidsintervall.
Syntaksen til DateDiff -funksjonen er:
DateDiff (Intervall, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) der:
- Intervall - En streng som angir hvilken type intervall som skal brukes. Intervallet kan være en av følgende verdier:
"D" - dag
"Ww" - uke
"W" - ukedag
"M" - måned
"Q" - kvartal
"Åååå" - år
"Y" - årets dag
"H" - time
"N" - minutt
"S" - andre
- Date1 - En datoverdi som representerer den tidligere datoen.
- Date2 - En datoverdi som representerer den senere datoen.
- Første dag i uken (Valgfri) - En konstant som angir ukedagen funksjonen skal bruke som den første dagen i uken. Hvis blank søndag brukes som første dag i uken. Firstdayofweek kan være en av følgende verdier:
-vbSunday - bruker søndag som den første dagen i uken.
-vbMandag - bruker mandag som den første dagen i uken.
-vbTuesday - bruker tirsdag som den første dagen i uken.
-vbWednesday - bruker onsdag som den første dagen i uken.
-vbThursday - bruker torsdag som den første dagen i uken.
-vbFriday - bruker fredag som den første dagen i uken.
-vbSaturday - bruker lørdag som den første dagen i uken.
-vbUseSystemDayOfTheWeek - bruker den første dagen i uken som er angitt av systemets innstillinger.
- Første uke i året (Valgfri) - En konstant som spesifiserer årets første uke. Hvis den er blank, brukes 1. januar -uken som årets første uke. Firstweekofyear kan være en av følgende verdier:
-vbFirstJan1 - bruker uken som inneholder 1. januar.
-vbFirstFourDays - bruker den første uken som inneholder minst fire dager i det nye året.
-vbFirstFullWeek - bruker årets første hele uke.
-vbSystem - bruker den første uken i året som angitt av systeminnstillingene.
Følgende kode viser deg hvordan du bruker DateDiff -funksjonen:
123456789 | Sub UsingTheDateDiffFunction ()Dim theDifferenceBetweenTwoDates As LongtheDifferenceBetweenTwoDates = DateDiff ("q", "11/11/2010", "10/12/2012")Debug.Print theDifferenceBetweenTwoDatesSlutt Sub |
Resultatet er:
VBA DatePart -funksjon
Du kan bruke DatePart -funksjonen for å returnere en del (dag, uke, kvartal, måned osv.) Av en gitt dato.
Syntaksen til DatePart -funksjonen er:
DatePart (Intervall, Dato, [Firstdayofweek], [Firstweekofyear]) der:
- Intervall - En streng som angir delen av datoen som skal returneres. Intervallet kan være en av følgende verdier:
"D" - dag
"Ww" - uke
"W" - ukedag
"M" - måned
"Q" - kvartal
"Åååå" - år
"Y" - årets dag
"H" - time
"N" - minutt
"S" - andre
- Dato - Datoen du vil at funksjonen skal returnere en del av.
- Første dag i uken (Valgfri) - En konstant som angir ukedagen som funksjonen skal bruke som den første dagen i uken. Hvis blank søndag brukes som første dag i uken. Firstdayofweek kan være en av følgende verdier:
-vbSunday - bruker søndag som den første dagen i uken.
-vbMandag - bruker mandag som den første dagen i uken.
-vbTuesday - bruker tirsdag som den første dagen i uken.
-vbWednesday - bruker onsdag som den første dagen i uken.
-vbThursday - bruker torsdag som den første dagen i uken.
-vbFriday - bruker fredag som den første dagen i uken.
-vbSaturday - bruker lørdag som den første dagen i uken.
-vbUseSystemDayOfTheWeek - bruker den første dagen i uken som er spesifisert av systemets innstillinger.
- Første uke i året (Valgfri) - En konstant som spesifiserer årets første uke. Hvis den er blank, brukes 1. januar -uken som årets første uke. Firstweekofyear kan være en av følgende verdier:
-vbFirstJan1 - bruker uken som inneholder 1. januar.
-vbFirstFourDays - bruker den første uken som inneholder minst fire dager i det nye året.
-vbFirstFullWeek - bruker årets første hele uke.
-vbSystem - bruker den første uken i året som angitt av systeminnstillingene.
Følgende kode viser deg hvordan du bruker DatePart -funksjonen:
123456789 | Sub UsingTheDatePartFunction ()Dim thePartOfTheDate som heltallthePartOfTheDate = DatePart ("åååå", "12.12.2009")Feilsøk. Skriv ut thePartOfTheDateSlutt Sub |
Resultatet er:
VBA DateSerial -funksjon
VBA DateSerial -funksjonen tar et inputår, måned og dag og returnerer en dato.
Syntaksen til DateSerial -funksjonen er:
DateSerial (år, måned, dag) der:
- År - En heltallsverdi mellom 100 og 9999 som representerer året.
- Måned - En heltallsverdi som representerer måneden.
- Dag - En heltallsverdi som representerer dagen.
Følgende kode viser deg hvordan du bruker DateSerial -funksjonen:
123456789 | Sub UsingTheDateSerialFunction ()Dim datoen som datotheDate = DateSerial (2010, 11, 10)Debug. Skriv ut datoenSlutt Sub |
Resultatet er:
VBA DateValue -funksjon
DateValue -funksjonen returnerer en dato når den er gitt en strengrepresentasjon av en dato.
Syntaksen til DateValue -funksjonen er:
DateValue (Date) hvor:
- Dato - En streng som representerer datoen.
Følgende kode viser deg hvordan du bruker DateValue -funksjonen:
123456789 | Sub UsingTheDateValueFunction ()Dim datoen som datotheDate = DateValue ("29. oktober 2010")Debug. Skriv ut datoenSlutt Sub |
Resultatet er:
VBA Day -funksjon
Du kan bruke dagfunksjonen til å returnere dagen for en inngangsdato.
Syntaksen til dagfunksjonen er:
Dag (Dato_verdi) hvor:
- Date_value - Datoen du vil trekke ut dagen fra.
Følgende kode viser deg hvordan du bruker dagfunksjonen:
123456789 | Sub UsingTheDayFunction ()Dim theDay As IntegertheDay = Day ("10/12/2010")Debug. Skriv ut dagenSlutt Sub |
Resultatet er:
VBA -timefunksjon
Du kan bruke timefunksjonen til å returnere timen for inndatatiden.
Syntaksen til timefunksjonen er:
Time (Tid) hvor:
- Tid - tiden du vil trekke timen fra.
Følgende kode viser deg hvordan du bruker timefunksjonen:
123456789 | Sub UsingTheHourFunction ()Dim theHour As IntegertheHour = Time ("2:14:17 AM")Debug. Skriv ut timenSlutt Sub |
Resultatet er:
VBA Minuttfunksjon
Du kan bruke minuttfunksjonen til å returnere minuttverdien for en inngangstid.
Syntaksen til minuttfunksjonen er:
Minutt (tid) hvor:
- Tid - Tiden du vil trekke ut minuttverdien fra.
Følgende kode viser deg hvordan du bruker minuttfunksjonen:
123456789 | Sub UsingTheMinuteFunction ()Dim theMinuteValue As IntegertheMinuteValue = Minutt ("2:14:17 AM")Feilsøk. Skriv ut theMinuteValueSlutt Sub |
Resultatet er:
VBA andre funksjon
Du kan bruke den andre funksjonen til å returnere den andre verdien av en inngangstid.
Syntaksen til den andre funksjonen er:
Andre (tid) hvor:
- Tid - tiden du vil trekke ut den andre verdien fra.
Følgende kode viser deg hvordan du bruker den andre funksjonen:
123456789 | Sub UsingTheSecondFunction ()Dim theSecondValue As IntegertheSecondValue = Second ("2:14:17 AM")Debug. Skriv ut den andre verdienSlutt Sub |
Resultatet er:
VBA måned funksjon
Du kan bruke månedsfunksjonen til å returnere måneden for en inngangsdato.
Syntaksen til månedsfunksjonen er:
Måned (dato_verdi) hvor:
- Date_value - Datoen du vil trekke ut måneden fra.
Følgende kode viser deg hvordan du bruker månedsfunksjonen:
12345678 | Sub UsingTheMonthFunction ()Dim theMonth As IntegertheMonth = Måned ("18.11.2010")Debug. Skriv ut månedenSlutt Sub |
Resultatet er:
VBA MonthName -funksjon
Du kan bruke MonthName -funksjonen til å returnere navnet på en måned fra et angitt månednummer.
Syntaksen til MonthName -funksjonen er:
Månedsnavn (Antall månedene, [Forkort]) der:
- Number_of_month - En heltallsverdi mellom 1 og 12.
- Forkort (Valgfri) - Angir om månedsnavnet skal forkortes. Hvis den er blank brukes standardverdien False.
12345678 | Sub UsingTheMonthNameFunction ()Dim theMonthName som strengtheMonthName = MonthName (12, True)Debug. Skriv ut theMonthNameSlutt Sub |
Resultatet er:
VBA TimeSerial -funksjon
TimeSerial -funksjonen tar en inndata time, minutt og sekund og returnerer en tid.
Syntaksen til TimeSerial -funksjonen er:
TimeSerial (Time, Minute, Second) hvor:
- Time - En heltallsverdi mellom 0 og 23 som representerer timeverdien.
- Minutt - En heltallsverdi mellom 0 og 59 som representerer minuttverdien.
- Second - En heltallsverdi mellom 0 og 59 som representerer den andre verdien.
Følgende kode viser deg hvordan du bruker TimeSerial -funksjonen:
12345678 | Sub UsingTheTimeSerialFunction ()Dim theTime As DatetheTime = TimeSerial (1, 10, 15)Debug. Skriv ut tidenSlutt Sub |
Resultatet er:
VBA TimeValue -funksjon
TimeValue -funksjonen returnerer en tid fra en strengrepresentasjon av en dato eller et klokkeslett.
Syntaksen til TimeValue -funksjonen er:
TimeValue (Time) hvor:
- Tid - En streng som representerer tiden.
Følgende kode viser deg hvordan du bruker TimeValue -funksjonen:
12345678 | Sub UsingTheTimeValueFunction ()Dim theTime As DatetheTime = TimeValue ("22:10:17")Debug. Skriv ut tidenSlutt Sub |
Resultatet er:
VBA ukedag funksjon
Du kan bruke funksjonen Ukedag til å returnere et helt tall fra 1 - 7 som representerer en ukedag fra en inndatoen.
Syntaksen til Weekday -funksjonen er:
Ukedag (dato, [første dag i uken]) der:
- Dato - Datoen du vil trekke ut ukedagsverdien fra.
- Første dag i uken (Valgfri) - En konstant som angir ukedagen funksjonen skal bruke som den første dagen i uken. Hvis blank søndag brukes som første dag i uken. Firstdayofweek kan være en av følgende verdier:
-vbSunday - bruker søndag som den første dagen i uken.
-vbMandag - bruker mandag som den første dagen i uken.
-vbTuesday - bruker tirsdag som den første dagen i uken.
-vbWednesday - bruker onsdag som den første dagen i uken.
-vbThursday - bruker torsdag som den første dagen i uken.
-vbFriday - bruker fredag som den første dagen i uken.
-vbSaturday - bruker lørdag som den første dagen i uken.
-vbUseSystemDayOfTheWeek - bruker den første dagen i uken som er spesifisert av systemets innstillinger.
Følgende kode viser deg hvordan du bruker ukedagsfunksjonen:
1234567 | Sub UsingTheWeekdayFunction ()Dim theWeekDay As IntegertheWeekDay = ukedag ("20.11.2019")Feilsøk. Skriv ut ukedagenSlutt Sub |
Resultatet er:
VBA WeekdayName -funksjon
Du kan bruke funksjonen WeekdayName til å returnere navnet på en ukedag fra et angitt ukedagsnummer.
Syntaksen til funksjonen WeekdayName er:
WeekdayName (Weekday, [Forkort], [Firstdayoftheweek]) der:
- Ukedag - En heltallsverdi mellom 1 og 7.
- Forkort (Valgfri) -Spesifiserer om ukedagsnavnet skal forkortes. Hvis den er blank brukes standardverdien False.
- Første dag i uken (Valgfri) - En konstant som angir ukedagen som funksjonen skal bruke som den første dagen i uken. Hvis blank søndag brukes som første dag i uken. Firstdayofweek kan være en av følgende verdier:
-vbSunday - bruker søndag som den første dagen i uken.
-vbMandag - bruker mandag som den første dagen i uken.
-vbTuesday - bruker tirsdag som den første dagen i uken.
-vbWednesday - bruker onsdag som den første dagen i uken.
-vbThursday - bruker torsdag som den første dagen i uken.
-vbFriday - bruker fredag som den første dagen i uken.
-vbSaturday - bruker lørdag som den første dagen i uken.
-vbUseSystemDayOfTheWeek - bruker den første dagen i uken som er spesifisert av systemets innstillinger.
12345678 | Sub UsingTheWeekdayNameFunction ()Dim theWeekdayName som strengtheWeekdayName = WeekdayName (4)Feilsøk. Skriv ut theWeekdayNameSlutt Sub |
Resultatet er:
VBA årsfunksjon
Du kan bruke årfunksjonen til å returnere året for en inngangsdato.
Syntaksen for årsfunksjonen er:
År (dato_verdi) der:
- Date_value - Datoen du vil trekke året fra.
Følgende kode viser deg hvordan du bruker årsfunksjonen:
12345678 | Sub UsingTheYearFunction ()Dim året som heltallår = år ("11/12/2010")Feilsøk. Skriv ut åretSlutt Sub |
Resultatet er:
Sammenligning av datoer i VBA
Du kan sammenligne datoer ved å bruke operatorene>, <, og = i VBA. Følgende kode viser deg hvordan du sammenligner to datoer i VBA.
12345678910111213141516171819 | Sub ComparingDates ()Dim dateOne As DateDim dateTwo As DatedateOne = "10/10/2010"dateTwo = "11/11/2010"If dateOne> dateTwo ThenDebug.Print "dateOne is the later date"ElseIf dateOne = dateTwo ThenDebug.Print "De to datoene er like"EllersDebug.Print "dateTwo is the later date"Slutt omSlutt Sub |
Lær mer om hvordan du formaterer datoer som strenger ved å se denne opplæringen.