Excel VBA DateSerial-funktion
DateSerial-funktionen i VBA returnerer datoen fra de værdier, der leveres af brugerne. Vi er nødt til at levere, hvad der er året, hvad er dagen, og hvad der er måneden. Resultatet vil være baseret på datoformatet for dit system.
Nedenfor er syntaksen for DATESERIAL-funktionen .

# 1 - År: vi skal indtaste heltal som hvad er året? Mens vi leverer heltal, skal vi huske under tingene.
- Vi kan levere numre fra 0 til 9999.
- Et- og tocifrede tal fra 0 til 99 behandles fra 1930 til 2029.
- Det negative heltal trækkes fra år 2000. Hvis du f.eks. Angiver -1, bliver resultatet 1999 på grund af 2000 - 1 = 1999.
# 2 - Måned: vi skal indtaste heltal som hvad er måneden? Når vi indtaster dette nummer, skal vi huske under tingene.
- Vi kan kun levere numre fra 1 til 12.
- Hvis den leverede heltal er 0, repræsenterer dette måneden "december" i det foregående år.
- Hvis den leverede heltalsværdi er -1, repræsenterer dette måneden "november" i det foregående år. På denne måde, når den negative værdi stiger, vil den fortsat repræsentere måneden bagud.
- Hvis det leverede antal er mere end 12, dvs. hvis tallet er 13, vil dette repræsentere måneden "januar" det følgende år. Hvis tallet er 14, behandles det som måneden "februar" det følgende år.
# 3 - Dag: Vi skal indtaste heltal som hvad er dagen? Når vi indtaster dette nummer, skal vi huske under tingene.
- Vi kan indtaste heltal fra 1 til 31 for aktuelle månedsdage.
- Hvis tallet er 0, repræsenterer det den sidste dag i den foregående måned.
- Hvis tallet er -1, repræsenterer det den næstsidste dag i den foregående måned.
- Hvis du leverer den sidste dag i denne måned +1, repræsenterer dette den første dag i den følgende måned. For eksempel, hvis den sidste dag i august er 31. og hvis du angiver dagen som 31 + 1, repræsenterer den den første dag i september.
Hvordan bruges DATESERIAL-funktion i VBA?
Eksempel nr. 1
For at bruge DATESERIAL-funktionen skal du begynde at skrive makrokoden.
Trin 1: Start underprocedure
Opret først en VBA-delprocedure som vist nedenfor.

Trin 2: Erklær variabel
Erklær nu en variabel som DATE.

Trin 3: Tildel DateSerial-funktion til den variabel.
Nu tildeles denne variabel funktionen DATESERIAL.

Trin 4: Indtast nu år-, måned- og dagværdier i DateSerial-funktionen
For YEAR supply 2019, for MONTH supply 08 og for DAY supply 05.

Trin 5: Vis resultat i meddelelsesfeltet
Vis nu resultatet af variablen “Min dato” i meddelelsesfeltet.
Kode:
Mulighed Eksplicit Sub DateSerial_Example1 () Dim Mydate Som Date Mydate = DateSerial (2019, 8, 5) MsgBox Mydate End Sub

Trin 6: Kør koden
Kør nu denne kode for at se nedenstående dato.

Resultatet siger “8/5/2019”. I mit system er datoformatet i form af "MM-DD-ÅÅÅÅ", så derfor er resultatet også i samme format.
Vi kan også ændre formatet på datoen ved hjælp af FORMAT-funktionen i VBA. Anvend FORMAT-funktion som nedenfor.
Kode:
Mulighed Eksplicit Sub DateSerial_Example1 () Dim Mydate Som Date Mydate = DateSerial (2019, 8, 5) MsgBox Format (Mydate, "DD-MMM-YYYY") End Sub
Dette vil anvende formatet i "DD-MMM-ÅÅÅÅ", og resultatet er som følger.

Eksempel 2
Vi kan også erklære variabler og levere værdierne til disse variabler. Se f.eks. Nedenstående kode.
Kode:
Sub DateSerial_Example2 () Dim Mydate Som Date Dim MyYear Som Integer Dim MyMonth Som Integer Dim MyDay As Integer MyYear = 2019 MyMonth = 8 MyDay = 5 Mydate = DateSerial (MyYear, MyMonth, MyDay) MsgBox Format (Mydate, "DDY-MM ") Afslut sub
Instead of supplying year, month, and day directly to the DATESERIAL function, we have declared variables and assigned values to them. Then later, we have supplied variables to the DATESERIAL function.
This is how we can make use of variables in VBA to store values.
Example #3
Now we will experiment with the year. I will assign the year value as 1 and see the result.

Single & Double-digit numbers in YEAR represents a year from 1930 to 2029. So 01 means 2001, 02 means 2002, and so on.
Now let’s change the month number to 0 and see the result.

Look at the code here, Year is 2019, and the month is 0. But look at the result it says 05-Dec-2019, whereas a supplied year is 2019 it says 2018 i.e., the previous year.
Dette skyldes, at da vi har leveret måneden som 0 DATESERIAL-funktion, tager måneden til sidste måned i det foregående år og ændrer året også i overensstemmelse hermed.
På denne måde kan du prøve forskellige numre for at se virkningen af funktionen.
Ting at huske
- Du skal vide, hvilket antal der repræsenterer hvilket år, måned og daginstitution. Læs syntaksforklaringen omhyggeligt for at forstå.
- Resultatet vil være baseret på datoformatet for dit system. Hvis du vil have et ændret resultat, skal du anvende FORMAT-funktionen og nævne datoformatet efter din bekvemmelighed.