I denne vejledning skal vi gennemgå de forskellige indbyggede VBA-datofunktioner.
VBA -datofunktion
Du kan bruge datofunktionen til at returnere den aktuelle dato.
Datafunktionens syntaks er Date (). Det har ingen argumenter.
Følgende kode viser dig, hvordan du bruger datofunktionen:
12345678 | Sub UsingTheDateFunction ()Dim datoen som datotheDate = Date ()Debug. Udskriv datoenAfslut Sub |
Resultatet er:
VBA nu funktion
Du kan bruge funktionen Nu til at returnere den aktuelle dato og klokkeslæt.
Syntaksen for Now -funktionen er Now (). Det har ingen argumenter.
Følgende kode viser dig, hvordan du bruger Now -funktionen:
12345678 | Sub UsingTheNowFunction ()Dim datoen som datotheDate = Nu ()Debug. Udskriv datoenAfslut Sub |
Resultatet er:
VBA -tidsfunktion
Du kan bruge tidsfunktionen til at returnere den aktuelle tid.
Syntaksen for tidsfunktionen er Time (). Det har ingen argumenter.
Følgende kode viser dig, hvordan du bruger tidsfunktionen:
12345678 | Sub UsingTheTimeFunction ()Dim tiden som datotheTime = Time ()Debug. Udskriv tidenAfslut Sub |
Resultatet er:
VBA DateAdd -funktion
Du kan bruge funktionen DateAdd til at føje et dato/tidsinterval til en dato eller et klokkeslæt, og funktionen returnerer den resulterende dato/tid.
Syntaksen for DateAdd -funktionen er:
DateAdd (Interval, Number, Date) hvor:
- Interval - En streng, der angiver typen af interval, der skal bruges. Intervallet kan være en af følgende værdier:
"D" - dag
"Ww" - uge
“W” - hverdag
"M" - måned
"Q" - kvartal
"Åååå" - år
“Y” - årets dag
"H" - time
"N" - minut
“S” - andet
- Antal - Antallet af intervaller, du vil føje til den originale dato/tid.
- Dato - Den originale dato/tid.
Bemærk: Når du bruger datoer i din kode, skal du omringe dem med # eller anførselstegn.
Følgende kode viser, hvordan du bruger funktionen DateAdd:
123456789 | Sub UsingTheDateAddFunction ()Dim senere Dato som datolaterDate = DateAdd ("m", 10, "11/12/2019")Debug.Print laterDateAfslut Sub |
Resultatet er:
VBA DateDiff -funktion
Du kan bruge DateDiff -funktionen for at få forskellen mellem to datoer baseret på et bestemt tidsinterval.
Syntaksen for DateDiff -funktionen er:
DateDiff (Interval, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) hvor:
- Interval - En streng, der angiver typen af interval, der skal bruges. Intervallet kan være en af følgende værdier:
"D" - dag
"Ww" - uge
“W” - hverdag
"M" - måned
"Q" - kvartal
"Åååå" - år
“Y” - årets dag
"H" - time
"N" - minut
“S” - andet
- Date1 - En datoværdi, der repræsenterer den tidligere dato.
- Date2 - En datoværdi, der repræsenterer den senere dato.
- Første dag i ugen (Valgfri) - En konstant, der angiver den hverdag, som funktionen skal bruge som den første dag i ugen. Hvis blank søndag bruges som den første dag i ugen. Firstdayofweek kan være en af følgende værdier:
-vbSunday - bruger søndag som den første dag i ugen.
-vbMandag - bruger mandag som den første dag i ugen.
-vbTuesday - bruger tirsdag som den første dag i ugen.
-vbWednesday - bruger onsdag som den første dag i ugen.
-vbThursday - bruger torsdag som den første dag i ugen.
-vbFriday - bruger fredag som den første dag i ugen.
-vbSaturday - bruger lørdag som den første dag i ugen.
-vbUseSystemDayOfTheWeek - bruger den første dag i ugen, der er angivet af dit systems indstillinger.
- Første uge i året (Valgfri) - En konstant, der angiver årets første uge. Hvis den er blank, bruges 1. januar -ugen som årets første uge. Firstweekofyear kan være en af følgende værdier:
-vbFirstJan1 - bruger ugen, der indeholder 1. januar.
-vbFirstFourDays - bruger den første uge, der indeholder mindst fire dage i det nye år.
-vbFirstFullWeek - bruger årets første hele uge.
-vbSystem - bruger årets første uge som angivet af dine systemindstillinger.
Følgende kode viser dig, hvordan du bruger DateDiff -funktionen:
123456789 | Sub UsingTheDateDiffFunction ()Dim theDifferenceBetweenTwoDates As LongtheDifferenceBetweenTwoDates = DateDiff ("q", "11/11/2010", "10/12/2012")Debug.Print theDifferenceBetweenTwoDatesAfslut Sub |
Resultatet er:
VBA DatePart -funktion
Du kan bruge DatePart -funktionen til at returnere en del (dag, uge, kvartal, måned osv.) Af en given dato.
Syntaksen for DatePart -funktionen er:
DatePart (Interval, Date, [Firstdayofweek], [Firstweekofyear]) hvor:
- Interval - En streng, der angiver den del af datoen, der skal returneres. Intervallet kan være en af følgende værdier:
"D" - dag
"Ww" - uge
“W” - hverdag
"M" - måned
"Q" - kvartal
"Åååå" - år
“Y” - årets dag
"H" - time
"N" - minut
“S” - andet
- Dato - den dato, du vil have funktionen til at returnere en del af.
- Første dag i ugen (Valgfri) - En konstant, der angiver den hverdag, som funktionen skal bruge som den første dag i ugen. Hvis blank søndag bruges som den første dag i ugen. Firstdayofweek kan være en af følgende værdier:
-vbSunday - bruger søndag som den første dag i ugen.
-vbMandag - bruger mandag som den første dag i ugen.
-vbTuesday - bruger tirsdag som den første dag i ugen.
-vbWednesday - bruger onsdag som den første dag i ugen.
-vbThursday - bruger torsdag som den første dag i ugen.
-vbFriday - bruger fredag som den første dag i ugen.
-vbSaturday - bruger lørdag som den første dag i ugen.
-vbUseSystemDayOfTheWeek - bruger den første dag i ugen, der er angivet af dit systems indstillinger.
- Første uge i året (Valgfri) - En konstant, der angiver årets første uge. Hvis den er blank, bruges 1. januar -ugen som årets første uge. Firstweekofyear kan være en af følgende værdier:
-vbFirstJan1 - bruger ugen, der indeholder 1. januar.
-vbFirstFourDays - bruger den første uge, der indeholder mindst fire dage i det nye år.
-vbFirstFullWeek - bruger årets første hele uge.
-vbSystem - bruger årets første uge som angivet af dine systemindstillinger.
Følgende kode viser dig, hvordan du bruger DatePart -funktionen:
123456789 | Sub UsingTheDatePartFunction ()Dim thePartOfTheDate som heltalthePartOfTheDate = DatePart ("åååå", "12/12/2009")Debug.Print thePartOfTheDateAfslut Sub |
Resultatet er:
VBA DateSerial -funktion
VBA DateSerial -funktionen tager et inputår, måned og dag og returnerer en dato.
Syntaksen for DateSerial -funktionen er:
DateSerial (år, måned, dag) hvor:
- År - En heltalværdi mellem 100 og 9999, der repræsenterer året.
- Måned - En heltal værdi, der repræsenterer måneden.
- Dag - En heltal værdi, der repræsenterer dagen.
Følgende kode viser dig, hvordan du bruger DateSerial -funktionen:
123456789 | Sub UsingTheDateSerialFunction ()Dim datoen som datotheDate = DateSerial (2010, 11, 10)Debug. Udskriv datoenAfslut Sub |
Resultatet er:
VBA DateValue -funktion
DateValue -funktionen returnerer en dato, når der gives en strengrepræsentation af en dato.
Syntaksen for DateValue -funktionen er:
DateValue (Date) hvor:
- Dato - En streng, der repræsenterer datoen.
Følgende kode viser dig, hvordan du bruger DateValue -funktionen:
123456789 | Sub UsingTheDateValueFunction ()Dim datoen som datotheDate = DateValue ("29. oktober 2010")Debug. Udskriv datoenAfslut Sub |
Resultatet er:
VBA dag funktion
Du kan bruge dagfunktionen til at returnere dagen for en indtastningsdato.
Syntaksen for dagfunktionen er:
Dag (dato_værdi) hvor:
- Date_value - Datoen, som du vil udtrække dagen fra.
Følgende kode viser dig, hvordan du bruger dagfunktionen:
123456789 | Sub UsingTheDayFunction ()Dim dagen som heltaltheDay = Day ("10/12/2010")Debug. Udskriv dagenAfslut Sub |
Resultatet er:
VBA -timefunktion
Du kan bruge timefunktionen til at returnere timen for et inputtidspunkt.
Syntaksen for timefunktionen er:
Time (tid) hvor:
- Tid - Det tidspunkt, du vil udtrække timen fra.
Følgende kode viser dig, hvordan du bruger timefunktionen:
123456789 | Sub UsingTheHourFunction ()Dæmp timen som heltaltheHour = Time ("2:14:17 AM")Debug. Udskriv timenAfslut Sub |
Resultatet er:
VBA -minutfunktion
Du kan bruge minutfunktionen til at returnere minutværdien for en inputtid.
Syntaksen for minutfunktionen er:
Minut (tid) hvor:
- Tid - Den tid, du vil udtrække minutværdien fra.
Følgende kode viser dig, hvordan du bruger minutfunktionen:
123456789 | Sub UsingTheMinuteFunction ()Dim theMinuteValue som heltaltheMinuteValue = Minute ("2:14:17 AM")Debug. Udskriv theMinuteValueAfslut Sub |
Resultatet er:
VBA anden funktion
Du kan bruge den anden funktion til at returnere den anden værdi for en inputtid.
Syntaksen for den anden funktion er:
Andet (tid) hvor:
- Tid - Den tid, du vil udtrække den anden værdi fra.
Følgende kode viser dig, hvordan du bruger den anden funktion:
123456789 | Sub UsingTheSecondFunction ()Dim theSecondValue As IntegertheSecondValue = Andet ("2:14:17 AM")Debug.Print theSecondValueAfslut Sub |
Resultatet er:
VBA Måned Funktion
Du kan bruge månedsfunktionen til at returnere måneden for en indtastningsdato.
Syntaksen for månedens funktion er:
Måned (dato_værdi) hvor:
- Date_value - Datoen, som du vil udtrække måneden fra.
Følgende kode viser dig, hvordan du bruger månedsfunktionen:
12345678 | Sub UsingTheMonthFunction ()Dim theMonth som heltaltheMonth = måned ("18/11/2010")Debug.Print theMonthAfslut Sub |
Resultatet er:
VBA MonthName -funktion
Du kan bruge funktionen Månedsnavn til at returnere navnet på en måned fra et indtastet månedsnummer.
Syntaksen for MonthName -funktionen er:
MonthName (Number_of_month, [Abbreviate]) hvor:
- Number_of_month - En heltal værdi mellem 1 og 12.
- Forkort (Valgfri) - Angiver, om månedsnavnet skal forkortes. Hvis den er blank, bruges standardværdien for Falsk.
12345678 | Sub UsingTheMonthNameFunction ()Dim theMonthName som strengtheMonthName = MonthName (12, True)Debug. Udskriv theMonthNameAfslut Sub |
Resultatet er:
VBA TimeSerial -funktion
TimeSerial -funktionen tager en input time, minut og sekund og returnerer en tid.
Syntaksen for TimeSerial -funktionen er:
TimeSerial (Time, Minute, Second) hvor:
- Time - En heltal værdi mellem 0 og 23, der repræsenterer timeværdien.
- Minut - En heltalværdi mellem 0 og 59, der repræsenterer minutværdien.
- Andet - En heltalværdi mellem 0 og 59, der repræsenterer den anden værdi.
Følgende kode viser dig, hvordan du bruger TimeSerial -funktionen:
12345678 | Sub UsingTheTimeSerialFunction ()Dim tiden som datotheTime = TimeSerial (1, 10, 15)Debug. Udskriv tidenAfslut Sub |
Resultatet er:
VBA TimeValue -funktion
TimeValue -funktionen returnerer en Time fra en strengrepræsentation af en dato eller et klokkeslæt.
Syntaksen for TimeValue -funktionen er:
TimeValue (Time) hvor:
- Tid - En streng, der repræsenterer tiden.
Følgende kode viser dig, hvordan du bruger TimeValue -funktionen:
12345678 | Sub UsingTheTimeValueFunction ()Dim tiden som datotheTime = TimeValue ("22:10:17")Debug. Udskriv tidenAfslut Sub |
Resultatet er:
VBA -hverdagsfunktion
Du kan bruge funktionen Ugedag til at returnere et helt tal fra 1 - 7, der repræsenterer en ugedag fra en indtastningsdato.
Syntaksen for Weekday -funktionen er:
Ugedag (dato, [Firstdayofweek]) hvor:
- Dato - Datoen, som du vil udtrække ugedagens værdi fra.
- Første dag i ugen (Valgfri) - En konstant, der angiver den hverdag, som funktionen skal bruge som den første dag i ugen. Hvis blank søndag bruges som den første dag i ugen. Firstdayofweek kan være en af følgende værdier:
-vbSunday - bruger søndag som den første dag i ugen.
-vbMandag - bruger mandag som den første dag i ugen.
-vbTuesday - bruger tirsdag som den første dag i ugen.
-vbWednesday - bruger onsdag som den første dag i ugen.
-vbThursday - bruger torsdag som den første dag i ugen.
-vbFriday - bruger fredag som den første dag i ugen.
-vbSaturday - bruger lørdag som den første dag i ugen.
-vbUseSystemDayOfTheWeek - bruger den første dag i ugen, der er angivet af dit systems indstillinger.
Følgende kode viser dig, hvordan du bruger Weekday -funktionen:
1234567 | Sub UsingTheWeekdayFunction ()Dim theWeekDay som heltaltheWeekDay = Ugedag ("11/20/2019")Debug.Print theWeekDayAfslut Sub |
Resultatet er:
VBA WeekdayName -funktion
Du kan bruge funktionen Ugedagens navn til at returnere navnet på en hverdag fra et indtastet hverdagsnummer.
Syntaksen for funktionen WeekdayName er:
WeekdayName (Weekday, [Forkort], [Firstdayoftheweek]) hvor:
- Ugedag - En heltal værdi mellem 1 og 7.
- Forkort (Valgfri) -Specificerer, om ugedagens navn skal forkortes. Hvis den er blank, bruges standardværdien for Falsk.
- Første dag i ugen (Valgfri) - En konstant, der angiver den hverdag, som funktionen skal bruge som den første dag i ugen. Hvis blank søndag bruges som den første dag i ugen. Firstdayofweek kan være en af følgende værdier:
-vbSunday - bruger søndag som den første dag i ugen.
-vbMandag - bruger mandag som den første dag i ugen.
-vbTuesday - bruger tirsdag som den første dag i ugen.
-vbWednesday - bruger onsdag som den første dag i ugen.
-vbThursday - bruger torsdag som den første dag i ugen.
-vbFriday - bruger fredag som den første dag i ugen.
-vbSaturday - bruger lørdag som den første dag i ugen.
-vbUseSystemDayOfTheWeek - bruger den første dag i ugen, der er angivet af dit systems indstillinger.
12345678 | Sub UsingTheWeekdayNameFunction ()Dim theWeekdayName som strengtheWeekdayName = WeekdayName (4)Debug. Udskriv theWeekdayNameAfslut Sub |
Resultatet er:
VBA års funktion
Du kan bruge årsfunktionen til at returnere året for en indtastningsdato.
Syntaksen for Årets Funktion er:
År (dato_værdi) hvor:
- Date_value - Datoen, som du vil udtrække året fra.
Følgende kode viser dig, hvordan du bruger årsfunktionen:
12345678 | Sub UsingTheYearFunction ()Dim året som heltalår = år ("11/12/2010")Debug. Udskriv åretAfslut Sub |
Resultatet er:
Sammenligning af datoer i VBA
Du kan sammenligne datoer ved hjælp af operatorerne>, <, og = i VBA. Følgende kode viser dig, hvordan du sammenligner to datoer i VBA.
12345678910111213141516171819 | Sub ComparingDates ()Dim dateOne As DateDim dateTwo As DatedateOne = "10/10/2010"dateTwo = "11/11/2010"Hvis dateOne> dateTwo ThenDebug.Print "dateOne er den senere dato"ElseIf dateOne = dateTwo ThenDebug.Print "De to datoer er ens"AndetDebug.Print "dateTwo er den senere dato"Afslut HvisAfslut Sub |
Lær mere om, hvordan du formaterer datoer som strenge ved at se denne vejledning.