VBA-format Dato - Hvordan ændres datoformatet i VBA-kode?

Indholdsfortegnelse

Excel VBA-format Dato

For at formatere en dato i VBA bruger vi selve den indbyggede FORMAT-funktion, det tager input som datoformat og returnerer det ønskede format, de argumenter, der kræves for denne funktion, er selve udtrykket og formattypen.

Formatering af dato og tid er følsomme ting i excel, og den samme gælder også for VBA. Standarddatoen og klokkeslættet er baseret på den systemdato, som vi arbejder på, og som kan variere fra system til system. I denne artikel viser vi dig forskellige teknikker til formatering af datoer med VBA-koder.

For at ændre datoformatet med VBA-kodning skal vi være opmærksomme på, hvad datoformaterne er og dens indvirkning på datoen.

Nedenstående tabel viser de forskellige datoformateringer og deres koder.

Så hvis du husker ovenstående diagram, er formatering af datoen gennem VBA-kodning slet ikke en hård opgave.

Hvordan ændres datoformat i VBA?

Nedenfor er eksempler på excel VBA-datoformat.

Eksempel nr. 1

For eksempel har vi den samme dato i flere celler på regnearket som vist nedenfor.

Nu vil vi anvende forskellige datoformater for den samme dato for at se effekten på forskellige datoformatkoder.

Kopier først de samme data til den næste kolonne for at se virkningen.

For den første dato, dvs. celle A1, anvender vi formatet “DD-MM-ÅÅÅÅ” .

I koden skal vi først vælge cellen ved hjælp af RANGE- objektet.

Kode:

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

Da vi ændrer datoformatet for cellen, er vi nødt til at få adgang til egenskaben " Nummerformat " for RANGE-objektet.

Kode:

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

Efter at have fået adgang til " Nummerformat " skal vi indstille nummerformatet ved at sætte lighedstegnet og anvende formatkoden i to anførselstegn.

Kode:

Sub Date_Format_Example1 () Range ("A1"). NumberFormat = "dd-mm-ååå" "Dette knytter datoen til" 23-10-2019 "End Sub

Når vi udfører denne kode, vil den anvende nummerformatet til cellen A1 som " DD-MM-ÅÅÅ."

Produktion:

Eksempel 2

På samme måde har jeg også anvendt forskellige formateringskoder for andre celler, og nedenfor er VBA-koden for dig.

Kode:

Sub Date_Format_Example2 () Range ("A1"). NumberFormat = "dd-mm-ååå" "Dette ændrer datoen til" 23-10-2019 "Range (" A2 "). NumberFormat =" ddd-mm-ååå " 'Dette vil ændre datoen til "Ons-10-2019" Område ("A3"). NumberFormat = "dddd-mm-åååå" "Dette vil ændre datoen til" Onsdag-10-2019 "Område (" A4 ") .NumberFormat = "dd-mmm-ååå" 'Dette vil ændre datoen til "23.-okt-2019" Område ("A5"). NumberFormat = "dd-mmmm-ååå"' Dette vil ændre datoen til "23- Oktober-2019 "Range (" A6 "). NumberFormat =" dd-mm-yy "'Dette ændrer datoen til" 23-10-19 "Range (" A7 "). NumberFormat =" ddd mmm yyyy "' Dette ændrer datoen til "ons okt 2019"Område ("A8"). NumberFormat = "dddd mmmm åååå" 'Dette ændrer datoen til "Onsdag oktober 2019" Afslut Sub

Resultatet af denne kode bliver som følger.

Produktion:

Skift datoformat ved hjælp af FORMAT-funktionen

I VBA har vi en funktion kaldet FORMAT, som kan bruges til at anvende det ønskede format på cellen.

Vi skal bare specificere, hvad værdien er for "Expression" og anvende "Format" i overensstemmelse hermed.

Se på nedenstående kode for et eksempel.

Kode:

Sub Date_Format_Example3 () Dim MyVal Som Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-ÅÅÅÅ") Afslut Sub

I ovenstående kode har jeg defineret variablen som variant (som kan indeholde en hvilken som helst værdi).

Kode:

Dim MyVal Som Variant

Dernæst for denne variabel har jeg tildelt værdien 43586.

Kode:

MyVal = 43586

Dernæst i meddelelsesfeltet, har jeg vist resultatet af den variable, men før vi viser resultatet, har vi brugt ” FORMAT ” funktion til at formatere værdien af variablen ”MyVal , ”, og formatet er givet. “ DD-MM-ÅÅÅÅ.”

Kode:

MsgBox-format (MyVal, "DD-MM-ÅÅÅ")

Ok, lad os køre koden og se resultatet i meddelelsesfeltet i VBA.

Produktion:

Som du kan se ovenfor, vises resultatet som “ 01-05-2019 ”.

Nu må du undre dig over, at vi har leveret serienummeret, men resultatet vises som datoen. Dette skyldes, at Excel gemmer datoen som serienumre, så værdien 43586 er lig med datoen "01-05-2019", og hvis du øger antallet med 1 dvs. 43587, vil datoen være "02-05-2019 ”.

Kode:

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

Ting at huske

  • Standarddatoen for dit system vil også blive anvendt på din excel.
  • Number Format-egenskaben kan bruges til at ændre datoformatet i VBA.
  • Ved hjælp af FORMAT-funktionen kan vi ændre datoformatet.
  • Excel gemmer dato som serienumre, og hvis du anvender datoformat, vises det tilsvarende.

Interessante artikler...