VBA DateSerial

Excel VBA DateSerial-functie

DateSerial-functie in VBA retourneert de datum van de waarden die door de gebruikers zijn opgegeven. We moeten aangeven wat het jaar is, wat de dag is en wat de maand is. Het resultaat is gebaseerd op de datumnotatie van uw systeem.

Hieronder vindt u de syntaxis van de functie DATESERIAL .

# 1 - Jaar: we moeten het gehele getal invoeren als wat is het jaar? Bij het invoeren van een geheel getal moeten we onderstaande dingen in gedachten houden.

  • We kunnen nummers van 0 tot 9999 leveren.
  • Getallen van één en twee cijfers van 0 tot 99 worden van 1930 tot 2029 behandeld.
  • Het negatieve gehele getal wordt afgetrokken van het jaar 2000. Als u bijvoorbeeld -1 opgeeft, is het resultaat 1999 omdat 2000 - 1 = 1999.

# 2 - Maand: we moeten het gehele getal invoeren, want wat is de maand? Bij het invoeren van dit nummer moeten we onderstaande zaken in gedachten houden.

  • We kunnen alleen nummers van 1 tot 12 leveren.
  • Als de opgegeven integerwaarde 0 is, staat dit voor de maand “december” van het voorgaande jaar.
  • Als de opgegeven gehele waarde -1 is, dan vertegenwoordigt dit de maand "november" van het voorgaande jaar. Op deze manier blijft, wanneer de negatieve waarde toeneemt, het de achterwaartse jaarmaand vertegenwoordigen.
  • Als het opgegeven nummer meer is dan 12, dwz als het nummer 13 is, dan vertegenwoordigt dit de maand "januari" van het volgende jaar, als het nummer 14 is, wordt het behandeld als de maand "februari" van het volgende jaar.

# 3 - Dag: we moeten het gehele getal invoeren als wat is de dag? Bij het invoeren van dit nummer moeten we onderstaande zaken in gedachten houden.

  • We kunnen gehele getallen van 1 tot 31 invoeren voor de huidige maanddagen.
  • Als het nummer 0 is, staat dit voor de laatste dag van de vorige maand.
  • Als het getal -1 is, staat dit voor de voorlaatste dag van de vorige maand.
  • Als u de laatste dag van deze maand +1 opgeeft, is dit de eerste dag van de volgende maand. Als de laatste dag van augustus bijvoorbeeld 31 is en als u de dag 31 + 1 opgeeft, is dit de eerste dag van september.

Hoe de functie DATESERIAL in VBA te gebruiken?

U kunt deze VBA DateSerial Excel-sjabloon hier downloaden - VBA DateSerial Excel-sjabloon

Voorbeeld 1

Om de DATESERIAL-functie te gebruiken, begint u met het schrijven van de macrocode.

Stap 1: Start de subprocedure

Maak eerst een VBA-subprocedure zoals hieronder weergegeven.

Stap 2: Declareer variabele

Declareer nu een variabele als DATE.

Stap 3: Wijs de DateSerial-functie toe aan die variabele.

Wijs nu voor deze variabele de functie DATESERIAL toe.

Stap 4: Voer nu jaar-, maand- en dagwaarden in de DateSerial-functie in

Voor JAAR levering 2019, voor MAAND levering 08, en voor DAG levering 05.

Stap 5: Toon resultaat in berichtenvenster

Toon nu het resultaat van de variabele "Mijn datum" in het berichtvenster.

Code:

 Optie Expliciete Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Mydate End Sub 

Stap 6: voer de code uit

Voer nu deze code uit om de onderstaande datum te zien.

Het resultaat zegt "8/5/2019". In mijn systeem is datumnotatie in de vorm van "MM-DD-JJJJ", dus daarom is het resultaat ook in hetzelfde formaat.

We kunnen ook het formaat van de datum wijzigen met behulp van de FORMAT-functie in VBA. Pas de FORMAT-functie toe zoals hieronder.

Code:

 Optie Expliciete Sub DateSerial_Example1 () Dim Myate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Format (Mydate, "DD-MMM-YYYY") End Sub 

Dit past het formaat toe in "DD-MMM-JJJJ" en het resultaat is als volgt.

Voorbeeld # 2

We kunnen ook variabelen declareren en de waarden aan die variabelen leveren. Kijk voor een voorbeeld naar de onderstaande code.

Code:

 Sub DateSerial_Example2 () Dim MyYear As Date Dim MyYear As Integer Dim MyMonth As Integer Dim MyDay As Integer MyYear = 2019 MyMonth = 8 MyDay = 5 Mydate = DateSerial (MyYear, MyMonth, MyDay) MsgBox Format (Mydate, "DD-MMM-YYYY ") Einde Sub 

In plaats van jaar, maand en dag rechtstreeks aan de functie DATAERIAL te leveren, hebben we variabelen gedeclareerd en er waarden aan toegewezen. Later hebben we variabelen aan de functie DATESERIAL geleverd.

Dit is hoe we variabelen in VBA kunnen gebruiken om waarden op te slaan.

Voorbeeld # 3

Nu gaan we experimenteren met het jaar. Ik zal de jaarwaarde als 1 toekennen en het resultaat zien.

Getallen met enkele en dubbele cijfers in JAAR staan ​​voor een jaar van 1930 tot 2029. Dus 01 betekent 2001, 02 betekent 2002 enzovoort.

Laten we nu het maandnummer veranderen in 0 en het resultaat bekijken.

Kijk naar de code hier, Jaar is 2019, en maand is 0. Maar kijk naar het resultaat, er staat 05-Dec-2019, terwijl een geleverd jaar 2019 is, staat er 2018, dus vorig jaar.

This is because since we have supplied the month as 0 DATESERIAL function takes the month to last month of the previous year and change the year also accordingly.

Like this try different numbers to see the impact of the function.

Things to Remember

  • You need to know what number represents which year, month, and daycare. Read Syntax explanation carefully to understand.
  • The result will be based on the date format of your system, if you want modified result then you need to apply FORMAT function mention the date format as per your convenience.