VBA-format Datum - Hur ändrar jag datumformatet i VBA-koden?

Innehållsförteckning

Excel VBA-format Datum

För att formatera ett datum i VBA använder vi den inbyggda FORMAT-funktionen i sig, det tar inmatning som datumformat och returnerar önskat format som krävs, de argument som krävs för denna funktion är själva uttrycket och formattypen.

Formatering av datum och tid är känsliga saker i excel, och samma sak gäller också VBA. Standarddatum och -tid är baserade på det systemdatum då vi arbetar, vilket kan variera från system till system. I den här artikeln visar vi dig olika tekniker för att formatera datum med VBA-koder.

För att ändra datumformatet med VBA-kodning måste vi vara medvetna om vad datumformaten är och dess inverkan på datumet.

Tabellen nedan visar olika datumformatering och deras koder.

Så om du tänker på ovanstående diagram är det inte alls svårt att formatera datumet genom VBA-kodning.

Hur ändrar jag datumformat i VBA?

Nedan följer exemplen på Excel VBA-datumformat.

Exempel 1

Till exempel har vi samma datum i flera celler i kalkylbladet, som visas nedan.

Nu kommer vi att använda olika datumformat för samma datum för att se effekterna vid olika datumformatkoder.

Kopiera först samma data till nästa kolumn för att se effekten.

För det första datumet, dvs cell A1, kommer vi att använda formatet “DD-MM-ÅÅÅÅ” .

I koden måste vi först välja cellen med RANGE- objektet.

Koda:

Sub Date_Format_Example1 () Range ("A1") End Sub

Eftersom vi ändrar datumformatet för cellen måste vi komma åt egenskapen " Number Format " för RANGE-objektet.

Koda:

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

Efter att ha öppnat " Nummerformat " måste vi ställa in nummerformatet genom att sätta lika tecken och tillämpa formatkoden i dubbla citat.

Koda:

Sub Date_Format_Example1 () Range ("A1"). NumberFormat = "dd-mm-yyy" 'Detta kommer att chnage datumet till "23-10-2019" End Sub

När vi kör den här koden kommer nummerformatet att tillämpas på cellen A1 som " DD-MM-ÅÅÅ."

Produktion:

Exempel 2

På samma sätt har jag också använt olika formateringskoder för andra celler, och nedan är VBA-koden för dig.

Koda:

Sub Date_Format_Example2 () Range ("A1"). NumberFormat = "dd-mm-ååå" "Detta ändrar datumet till" 23-10-2019 "Range (" A2 "). NumberFormat =" ddd-mm-yyy " 'Detta ändrar datumet till "Ons-10-2019" -intervall ("A3"). NumberFormat = "dddd-mm-åååå" "Detta ändrar datumet till" Onsdag-10-2019 "-intervall (" A4 ") .NumberFormat = "dd-mmm-ååå" "Detta ändrar datumet till" 23-okt-2019 "-intervall (" A5 "). NumberFormat =" dd-mmmm-ååå "" Detta ändrar datumet till "23- Oktober-2019 "Range (" A6 "). NumberFormat =" dd-mm-yy "'Detta ändrar datumet till" 23-10-19 "Range (" A7 "). NumberFormat =" ddd mmm yyyy "' Detta ändrar datumet till "ons okt 2019"Område ("A8"). NumberFormat = "dddd mmmm åååå" "Detta ändrar datumet till" onsdag oktober 2019 "Slut Sub

Resultatet av den här koden blir följande.

Produktion:

Ändra datumformat med hjälp av FORMAT-funktionen

I VBA har vi en funktion som heter FORMAT, som kan användas för att tillämpa önskat format på cellen.

Vi behöver bara ange vad värdet är för "Expression" och tillämpa "Format" därefter.

Titta på koden nedan för ett exempel.

Koda:

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

I ovanstående kod har jag definierat variabeln som variant (som kan innehålla vilket värde som helst).

Koda:

Dim MyVal Som Variant

Nästa för den här variabeln har jag tilldelat värdet 43586.

Koda:

MyVal = 43586

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

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

Saker att komma ihåg

  • Standarddatumet för ditt system kommer också att tillämpas på din excel.
  • Number Format-egenskapen kan användas för att ändra datumformatet i VBA.
  • Med FORMAT-funktionen kan vi ändra datumformat.
  • Excel lagrar datum som serienummer, och om du använder datumformat visas det därefter.

Intressanta artiklar...