Datum VBA-indeling

Excel VBA-opmaakdatum

Om een datum in VBA op te maken , gebruiken we de ingebouwde FORMAT-functie zelf, het neemt invoer als het datumnotatie en retourneert het gewenste vereiste formaat, de vereiste argumenten voor deze functie zijn de uitdrukking zelf en het formaattype.

Opmaak van datum en tijd zijn gevoelige dingen in Excel en hetzelfde geldt ook voor VBA. De standaarddatum en -tijd zijn gebaseerd op de systeemdatum waarop we werken, die van systeem tot systeem kan verschillen. In dit artikel laten we u verschillende technieken zien voor het opmaken van datums met VBA-codes.

Om het datumnotatie met VBA-codering te wijzigen, moeten we weten wat de datumnotaties zijn en wat de impact is op de datum.

De onderstaande tabel toont de verschillende datumnotaties en hun codes.

Dus als u in gedachten houdt dat de bovenstaande grafiek de datum opmaakt via VBA-codering, is helemaal niet de moeilijke taak.

Hoe de datumnotatie in VBA wijzigen?

Hieronder staan ​​de voorbeelden van Excel VBA-datumnotatie.

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

Voorbeeld 1

We hebben bijvoorbeeld dezelfde datum in meerdere cellen van het werkblad, zoals hieronder wordt weergegeven.

Nu zullen we verschillende datumnotaties toepassen voor dezelfde datum om de impact te zien bij verschillende datumnotatiecodes.

Kopieer eerst dezelfde gegevens ook naar de volgende kolom om de impact te zien.

Voor de eerste datum, dwz cel A1, zullen we het formaat "DD-MM-JJJJ" toepassen .

In de code moeten we eerst de cel selecteren met behulp van het RANGE- object.

Code:

 Sub Date_Format_Example1 () Bereik ("A1") End Sub 

Omdat we de datumnotatie van de cel wijzigen, hebben we toegang tot de eigenschap " Getalnotatie " van het RANGE-object nodig.

Code:

 Sub Date_Format_Example1 () Bereik ("A1"). NumberFormat End Sub 

Na het openen van " Getalformaat " moeten we het getalformaat instellen door het gelijkteken te plaatsen en de opmaakcode tussen dubbele aanhalingstekens plaatsen.

Code:

 Sub Date_Format_Example1 () Bereik ("A1"). NumberFormat = "dd-mm-jjj" 'Dit zal de datum wijzigen naar "23-10-2019" End Sub 

Wanneer we deze code uitvoeren, wordt de getalnotatie op cel A1 toegepast als " DD-MM-JJJ ".

Uitgang:

Voorbeeld # 2

Op dezelfde manier heb ik ook verschillende opmaakcodes voor andere cellen toegepast en hieronder staat de VBA-code voor jou.

Code:

Sub Date_Format_Example2 () Bereik ("A1"). NumberFormat = "dd-mm-jjj" 'Dit zal de datum wijzigen in "23-10-2019" Bereik ("A2"). NumberFormat = "ddd-mm-jjj" 'Hierdoor wordt de datum gewijzigd in "Wo-10-2019" Bereik ("A3"). NumberFormat = "dddd-mm-jjj"' Dit zal de datum wijzigen in "Woensdag-10-2019" Bereik ("A4") .NumberFormat = "dd-mmm-jjj" 'Dit zal de datum veranderen in "23-Oct-2019" Bereik ("A5"). NumberFormat = "dd-mmmm-jjj"' Dit zal de datum veranderen in "23- Oktober-2019 "Bereik (" A6 "). NumberFormat =" dd-mm-jj "'Dit zal de datum wijzigen in" 23-10-19 "Bereik (" A7 "). NumberFormat =" ddd mmm jjjj "' Dit zal de datum wijzigen in "Wed Oct 2019 "Range (" A8 "). NumberFormat =" dddd mmmm jjjj "'Dit zal de datum wijzigen in" Woensdag oktober 2019 "End Sub

Het resultaat van deze code is als volgt.

Uitgang:

Wijzig de datumnotatie met behulp van de FORMAT-functie

In VBA hebben we een functie genaamd FORMAT die kan worden gebruikt om het gewenste formaat op de cel toe te passen.

We hoeven alleen maar te specificeren wat de waarde is voor "Expression" en de "Format" dienovereenkomstig toe te passen.

Bekijk de onderstaande code voor een voorbeeld.

Code:

 Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYYY") End Sub 

In de bovenstaande code heb ik de variabele gedefinieerd als variant (die elke waarde kan bevatten).

Code:

 Dim MyVal als variant 

Vervolgens heb ik voor deze variabele de waarde 43586 toegewezen.

Code:

MyVal = 43586

Vervolgens heb ik in het berichtvenster het resultaat van de variabele getoond, maar voordat we het resultaat tonen, hebben we de functie " FORMAT " gebruikt om de waarde van de variabele " MyVal " op te maken en het formaat is gegeven is " DD-MM- JJJJ ”.

Code:

MsgBox-indeling (MyVal, "DD-MM-JJJ")

Oké, laten we de code uitvoeren en het resultaat zien in het berichtvenster in VBA.

Uitgang:

Zoals je hierboven kunt zien, wordt het resultaat weergegeven als “ 01-05-2019 ”.

Nu moet u zich afvragen dat we het serienummer hebben opgegeven, maar het resultaat wordt weergegeven als de datum. Dit komt doordat Excel datum opslaat als serienummers, dus de waarde 43586 is gelijk aan de datum “01-05-2019” en als je het nummer met 1 verhoogt, dwz 43587, wordt de datum “02-05-2019”.

Code:

 Sub Date_Format_Example3() Dim MyVal As Variant MyVal = 43586 MsgBox Format(MyVal, "DD-MM-YYY") End Sub 

Things to Remember

  • The default date of your system will be applied to your excel as well.
  • Number Format property can be used to change the date format in VBA.
  • Using the FORMAT function, we can change the date format.
  • Excel stores date as serial numbers and if you apply date format it will show accordingly.