I denna handledning kommer vi att gå igenom de olika inbyggda VBA-datumfunktionerna.
VBA -datumfunktion
Du kan använda datumfunktionen för att returnera aktuellt datum.
Syntaxen för datumfunktionen är Date (). Det har inga argument.
Följande kod visar hur du använder datumfunktionen:
12345678 | Sub UsingTheDateFunction ()Dim theDate As DatetheDate = Date ()Felsök. Skriv ut datumetAvsluta Sub |
Resultatet är:
VBA Now -funktion
Du kan använda Nu -funktionen för att återställa aktuellt datum och tid.
Syntaxen för Nu -funktionen är Nu (). Det har inga argument.
Följande kod visar hur du använder nu -funktionen:
12345678 | Sub UsingTheNowFunction ()Dim theDate As DatetheDate = Now ()Felsök. Skriv ut datumetAvsluta Sub |
Resultatet är:
VBA -tidsfunktion
Du kan använda tidsfunktionen för att återställa aktuell tid.
Syntaxen för tidsfunktionen är Time (). Det har inga argument.
Följande kod visar hur du använder tidsfunktionen:
12345678 | Sub UsingTheTimeFunction ()Dim tid som datumtheTime = Time ()Felsök. Skriv ut tidenAvsluta Sub |
Resultatet är:
VBA DateAdd -funktion
Du kan använda funktionen DateAdd för att lägga till ett datum/tidsintervall till ett datum eller en tid, och funktionen returnerar det resulterande datumet/tiden.
Syntaxen för DateAdd -funktionen är:
DateAdd (Intervall, Antal, Datum) där:
- Intervall - En sträng som anger vilken typ av intervall som ska användas. Intervallet kan vara ett av följande värden:
"D-dagen
"Ww" - vecka
"W" - vardag
"M" - månad
“Q” - kvartal
"Åååå" - år
“Y” - årets dag
"H" - timme
"N" - minut
“S” - andra
- Antal - Antalet intervall som du vill lägga till det ursprungliga datumet/tiden.
- Datum - Det ursprungliga datumet/tiden.
Obs! När du använder datum i din kod måste du omge dem med # eller citattecken.
Följande kod visar hur du använder funktionen DateAdd:
123456789 | Sub UsingTheDateAddFunction ()Dim senare Datum som datumlaterDate = DateAdd ("m", 10, "11/12/2019")Debug.Print laterDateAvsluta Sub |
Resultatet är:
VBA DateDiff -funktion
Du kan använda DateDiff -funktionen för att få skillnaden mellan två datum, baserat på ett visst tidsintervall.
Syntaxen för DateDiff -funktionen är:
DateDiff (Intervall, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) där:
- Intervall - En sträng som anger vilken typ av intervall som ska användas. Intervallet kan vara ett av följande värden:
"D-dagen
"Ww" - vecka
"W" - vardag
"M" - månad
“Q” - kvartal
"Åååå" - år
“Y” - årets dag
"H" - timme
"N" - minut
“S” - andra
- Date1 - Ett datumvärde som representerar det tidigare datumet.
- Date2 - Ett datumvärde som representerar det senare datumet.
- Första dagen i veckan (Frivillig) - En konstant som anger den vardag som funktionen ska använda som den första dagen i veckan. Om blank söndag används som första dagen i veckan. Firstdayofweek kan vara ett av följande värden:
-vbSunday - använder söndag som första dag i veckan.
-vbMåndag - använder måndag som första dag i veckan.
-vbTuesday - använder tisdag som den första dagen i veckan.
-vbWednesday - använder onsdagen som den första dagen i veckan.
-vbThursday - använder torsdagen som den första dagen i veckan.
-vbFriday - använder fredagen som den första dagen i veckan.
-vbSaturday - använder lördagen som den första dagen i veckan.
-vbUseSystemDayOfTheWeek - använder den första dagen i veckan som anges av systemets inställningar.
- Första veckan i år (Frivillig) - En konstant som anger årets första vecka. Om den är tom används den 1 januari veckan som årets första vecka. Firstweekofyear kan vara ett av följande värden:
-vbFirstJan1 - använder veckan som innehåller 1 januari.
-vbFirstFourDays - använder den första veckan som innehåller minst fyra dagar under det nya året.
-vbFirstFullWeek - använder årets första hela vecka.
-vbSystem - använder årets första vecka enligt dina systeminställningar.
Följande kod visar hur du använder DateDiff -funktionen:
123456789 | Sub UsingTheDateDiffFunction ()Dim theDifferenceBetweenTwoDates As LongtheDifferenceBetweenTwoDates = DateDiff ("q", "11/11/2010", "10/12/2012")Felsök. Skriv ut theDifferenceBetweenTwoDatesAvsluta Sub |
Resultatet är:
VBA DatePart -funktion
Du kan använda DatePart -funktionen för att returnera en del (dag, vecka, kvartal, månad etc.) av ett visst datum.
Syntaxen för DatePart -funktionen är:
DatePart (Intervall, Datum, [Firstdayofweek], [Firstweekofyear]) där:
- Intervall - En sträng som anger den del av datumet som ska returneras. Intervallet kan vara ett av följande värden:
"D-dagen
"Ww" - vecka
"W" - vardag
"M" - månad
“Q” - kvartal
"Åååå" - år
“Y” - årets dag
"H" - timme
"N" - minut
“S” - andra
- Datum - Det datum som du vill att funktionen ska returnera en del av.
- Första dagen i veckan (Frivillig) - En konstant som anger den vardag som funktionen ska använda som den första dagen i veckan. Om blank söndag används som första dagen i veckan. Firstdayofweek kan vara ett av följande värden:
-vbSunday - använder söndag som den första dagen i veckan.
-vbMåndag - använder måndag som första dag i veckan.
-vbTuesday - använder tisdag som den första dagen i veckan.
-vbWednesday - använder onsdagen som den första dagen i veckan.
-vbThursday - använder torsdagen som den första dagen i veckan.
-vbFriday - använder fredagen som den första dagen i veckan.
-vbSaturday - använder lördagen som den första dagen i veckan.
-vbUseSystemDayOfTheWeek - använder den första dagen i veckan som anges av systemets inställningar.
- Första veckan i år (Frivillig) - En konstant som anger årets första vecka. Om den är tom används den 1 januari veckan som årets första vecka. Firstweekofyear kan vara ett av följande värden:
-vbFirstJan1 - använder veckan som innehåller 1 januari.
-vbFirstFourDays - använder den första veckan som innehåller minst fyra dagar under det nya året.
-vbFirstFullWeek - använder årets första hela vecka.
-vbSystem - använder årets första vecka enligt dina systeminställningar.
Följande kod visar hur du använder DatePart -funktionen:
123456789 | Sub UsingTheDatePartFunction ()Dim thePartOfTheDate som heltalthePartOfTheDate = DatePart ("åååå", "12/12/2009")Felsök. Skriv ut thePartOfTheDateAvsluta Sub |
Resultatet är:
VBA DateSerial -funktion
VBA DateSerial -funktionen tar ett inmatningsår, månad och dag och returnerar ett datum.
Syntaxen för DateSerial -funktionen är:
DateSerial (år, månad, dag) där:
- År - Ett heltal mellan 100 och 9999 som representerar året.
- Månad - Ett heltal som representerar månaden.
- Dag - Ett heltal som representerar dagen.
Följande kod visar hur du använder DateSerial -funktionen:
123456789 | Sub UsingTheDateSerialFunction ()Dim theDate As DatetheDate = DateSerial (2010, 11, 10)Felsök. Skriv ut datumetAvsluta Sub |
Resultatet är:
VBA DateValue -funktion
DateValue -funktionen returnerar ett datum när det ges en strängrepresentation av ett datum.
Syntaxen för DateValue -funktionen är:
DateValue (Datum) där:
- Datum - En sträng som representerar datumet.
Följande kod visar hur du använder DateValue -funktionen:
123456789 | Sub UsingTheDateValueFunction ()Dim theDate As DatetheDate = DateValue ("29 oktober 2010")Felsök. Skriv ut datumetAvsluta Sub |
Resultatet är:
VBA Day -funktion
Du kan använda dagfunktionen för att returnera dagen för ett inmatningsdatum.
Syntaxen för dagfunktionen är:
Dag (Date_value) där:
- Date_value - Det datum som du vill extrahera dagen från.
Följande kod visar hur du använder dagfunktionen:
123456789 | Sub UsingTheDayFunction ()Dim theDay As IntegertheDay = Day ("10/12/2010")Felsök. Skriv ut dagenAvsluta Sub |
Resultatet är:
VBA -timmars funktion
Du kan använda timfunktionen för att returnera timmen för en inmatningstid.
Syntaxen för timfunktionen är:
Timmar (tid) där:
- Tid - Den tid som du vill extrahera timmen från.
Följande kod visar hur du använder timfunktionen:
123456789 | Sub UsingTheHourFunction ()Dim timmen som heltaltheHour = Hour ("2:14:17 AM")Felsök. Skriv ut timmenAvsluta Sub |
Resultatet är:
VBA -minutfunktion
Du kan använda minutfunktionen för att returnera minutvärdet för en ingångstid.
Syntaxen för minutfunktionen är:
Minut (tid) där:
- Tid - Den tid som du vill extrahera minutvärdet från.
Följande kod visar hur du använder minutfunktionen:
123456789 | Sub UsingTheMinuteFunction ()Dim theMinuteValue som heltaltheMinuteValue = Minut ("2:14:17 AM")Felsök. Skriv ut theMinuteValueAvsluta Sub |
Resultatet är:
VBA andra funktion
Du kan använda den andra funktionen för att returnera det andra värdet för en ingångstid.
Syntaxen för den andra funktionen är:
Andra (tid) där:
- Tid - Den tid som du vill extrahera det andra värdet från.
Följande kod visar hur du använder den andra funktionen:
123456789 | Sub UsingTheSecondFunction ()Dim theSecondValue As IntegertheSecondValue = Andra ("2:14:17 AM")Felsök. Skriv ut theSecondValueAvsluta Sub |
Resultatet är:
VBA månad funktion
Du kan använda månadsfunktionen för att returnera månaden för ett inmatningsdatum.
Syntaxen för månadsfunktionen är:
Månad (datumvärde) där:
- Date_value - Det datum som du vill extrahera månaden från.
Följande kod visar hur du använder månadsfunktionen:
12345678 | Sub UsingTheMonthFunction ()Dimma månaden som heltaltheMonth = månad ("18/11/2010")Felsök. Skriv ut theMonthAvsluta Sub |
Resultatet är:
VBA MonthName -funktion
Du kan använda funktionen MonthName för att returnera namnet på en månad från ett inmatat månadsnummer.
Syntaxen för MonthName -funktionen är:
MonthName (Number_of_month, [Abbreviate]) där:
- Number_of_month - Ett heltal mellan 1 och 12.
- Förkorta (Frivillig) - Anger om månadsnamnet ska förkortas. Om det är tomt används standardvärdet False.
12345678 | Sub UsingTheMonthNameFunction ()Dim theMonthName som strängtheMonthName = MonthName (12, True)Felsök. Skriv ut theMonthNameAvsluta Sub |
Resultatet är:
VBA TimeSerial -funktion
TimeSerial -funktionen tar en inmatningstimme, minut och sekund och returnerar en tid.
Syntaxen för TimeSerial -funktionen är:
TimeSerial (timme, minut, sekund) där:
- Timmar - Ett heltal mellan 0 och 23 som representerar timvärdet.
- Minut - Ett heltal mellan 0 och 59 som representerar minutvärdet.
- Andra - Ett heltal mellan 0 och 59 som representerar det andra värdet.
Följande kod visar hur du använder TimeSerial -funktionen:
12345678 | Sub UsingTheTimeSerialFunction ()Dim theTime As DatetheTime = TimeSerial (1, 10, 15)Felsök. Skriv ut tidenAvsluta Sub |
Resultatet är:
VBA TimeValue -funktion
TimeValue -funktionen returnerar en tid från en strängrepresentation av ett datum eller en tid.
Syntaxen för TimeValue -funktionen är:
TimeValue (Time) där:
- Tid - En sträng som representerar tiden.
Följande kod visar hur du använder TimeValue -funktionen:
12345678 | Sub UsingTheTimeValueFunction ()Dim theTime As DatetheTime = TimeValue ("22:10:17")Felsök. Skriv ut tidenAvsluta Sub |
Resultatet är:
VBA -vardagsfunktion
Du kan använda veckodagsfunktionen för att returnera ett heltal från 1 - 7 som representerar en veckodag från ett inmatningsdatum.
Syntaxen för veckodagsfunktionen är:
Veckodag (datum, [Firstdayofweek]) där:
- Datum - Det datum som du vill extrahera veckodagsvärdet från.
- Första dagen i veckan (Frivillig) - En konstant som anger den vardag som funktionen ska använda som den första dagen i veckan. Om blank söndag används som första dagen i veckan. Firstdayofweek kan vara ett av följande värden:
-vbSunday - använder söndag som första dag i veckan.
-vbMåndag - använder måndag som första dag i veckan.
-vbTuesday - använder tisdag som den första dagen i veckan.
-vbWednesday - använder onsdagen som den första dagen i veckan.
-vbThursday - använder torsdagen som den första dagen i veckan.
-vbFriday - använder fredagen som den första dagen i veckan.
-vbSaturday - använder lördagen som den första dagen i veckan.
-vbUseSystemDayOfTheWeek - använder den första dagen i veckan som anges av systemets inställningar.
Följande kod visar hur du använder veckodagsfunktionen:
1234567 | Sub UsingTheWeekdayFunction ()Dim theWeekDay som heltaltheWeekDay = Vardag ("11/20/2019")Felsök. Skriv ut theWeekDayAvsluta Sub |
Resultatet är:
VBA WeekdayName -funktion
Du kan använda funktionen WeekdayName för att returnera namnet på en vardag från ett inmatat veckodagsnummer.
Syntaxen för funktionen WeekdayName är:
WeekdayName (Weekday, [Abbreviate], [Firstday oftheweek]) där:
- Vardag - Ett heltal mellan 1 och 7.
- Förkorta (Frivillig) -Specificerar om veckodagsnamnet ska förkortas. Om det är tomt används standardvärdet för False.
- Första dagen i veckan (Frivillig) - En konstant som anger den vardag som funktionen ska använda som den första dagen i veckan. Om blank söndag används som första dagen i veckan. Firstdayofweek kan vara ett av följande värden:
-vbSunday - använder söndag som den första dagen i veckan.
-vbMåndag - använder måndag som första dag i veckan.
-vbTuesday - använder tisdag som den första dagen i veckan.
-vbWednesday - använder onsdagen som den första dagen i veckan.
-vbThursday - använder torsdagen som den första dagen i veckan.
-vbFriday - använder fredagen som den första dagen i veckan.
-vbSaturday - använder lördagen som den första dagen i veckan.
-vbUseSystemDayOfTheWeek - använder den första dagen i veckan som anges av systemets inställningar.
12345678 | Sub UsingTheWeekdayNameFunction ()Dim theWeekdayName som strängtheWeekdayName = WeekdayName (4)Felsök. Skriv ut theWeekdayNameAvsluta Sub |
Resultatet är:
VBA års funktion
Du kan använda årsfunktionen för att returnera året för ett inmatningsdatum.
Syntaxen för årsfunktionen är:
År (datum_värde) där:
- Date_value - Det datum som du vill extrahera året från.
Följande kod visar hur du använder årsfunktionen:
12345678 | Sub UsingTheYearFunction ()Dim året som heltalår = år ("11/12/2010")Felsök. Skriv ut åretAvsluta Sub |
Resultatet är:
Jämför datum i VBA
Du kan jämföra datum med hjälp av operatörerna>, <, och = i VBA. Följande kod visar hur du jämför två datum 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 två datumen är lika"AnnanDebug.Print "dateTwo is the later date"Avsluta omAvsluta Sub |
Läs mer om hur du formaterar datum som strängar genom att titta på den här självstudien.