VBA formato data - Kaip pakeisti datos formatą VBA kode?

„Excel VBA“ formato data

Norėdami suformatuoti datą VBA, mes naudojame pačią integruotą FORMAT funkciją. Ji laiko įvestį kaip datos formatą ir grąžina norimą formatą, šiai funkcijai reikalingi argumentai yra pati išraiška ir formato tipas.

Datos ir laiko formatavimas yra jautrūs „Excel“ dalykai, tas pats dalykas buvo taikomas ir VBA. Numatytoji data ir laikas yra pagrįsti sistemos data, kurią dirbame, kuri kiekvienoje sistemoje gali skirtis. Šiame straipsnyje mes parodysime jums skirtingas datų formatavimo su VBA kodais būdus.

Norėdami pakeisti datos formatą naudodami VBA kodavimą, turime žinoti, kokie yra datos formatai, ir jo įtaką datai.

Žemiau esančioje lentelėje pateikiamas skirtingas datos formatavimas ir jų kodai.

Taigi, jei turėsite omenyje aukščiau pateiktą diagramos datos formatavimą per VBA kodavimą, tai nėra sunki užduotis.

Kaip pakeisti datos formatą VBA?

Žemiau pateikiami „Excel“ VBA datos formato pavyzdžiai.

1 pavyzdys

Pvz., Keliose darbalapio ląstelėse yra ta pati data, kaip parodyta žemiau.

Dabar ta pati data pritaikysime skirtingus datos formatus, kad pamatytume poveikį skirtingais datos formato kodais.

Pirmiausia nukopijuokite tuos pačius duomenis į kitą stulpelį, kad pamatytumėte poveikį.

Pirmą datą, ty langelį A1, taikysime „DD-MM-YYYY“ formatą.

Pirmiausia kode turime pasirinkti langelį naudodami objektą RANGE .

Kodas:

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

Kadangi keičiame langelio datos formatą, turime pasiekti objekto RANGE ypatybę „ Skaičių formatas “.

Kodas:

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

Pasiekę „ Skaičių formatą “, turime nustatyti skaičiaus formatą įdėdami lygybės ženklą ir pritaikyti formato kodą dvigubomis kabutėmis.

Kodas:

Sub Date_Format_Example1 () Range ("A1"). NumberFormat = "dd-mm-yyy" 'Tai nustatys datą iki "2019-10-23" pabaigos sub

Kai vykdysime šį kodą, langelyje A1 numerio formatas bus pritaikytas kaip „ DD-MM-YYY“.

Išvestis:

2 pavyzdys

Panašiai pritaikiau skirtingus formatavimo kodus ir kitoms ląstelėms, o žemiau pateikiamas jūsų VBA kodas.

Kodas:

Sub Date_Format_Example2 () Range ("A1"). NumberFormat = "dd-mm-yyy" 'Tai pakeis datą į "2019-10-23" diapazoną ("A2"). NumberFormat = "ddd-mm-yyy" 'Tai pakeis datą į „Wed-10-2019" diapazoną („A3"). NumberFormat = "dddd-mm-yyy"' Tai pakeis datą į „Wednesday-10-2019" Range ("A4") .NumberFormat = "dd-mmm-yyy" 'Tai pakeis datą į "2019 m. Spalio 23 d." Diapazoną ("A5"). NumberFormat = "dd-mmmm-yyy" "Tai pakeis datą į" 23- 2019 m. Spalio mėn. "Diapazonas (" A6 "). NumberFormat =" dd-mm-yy "" Tai pakeis datą į "23-10-19" diapazoną ("A7"). NumberFormat = "ddd mmm yyyy" 'Tai pakeis datą į „2019 m. spalio mėn.“Diapazonas ("A8"). NumberFormat = "dddd mmmm yyyy" 'Tai pakeis datą į „2019 m. Spalio trečiadienis“ Pabaiga

Šio kodo rezultatas bus toks.

Išvestis:

Pakeiskite datos formatą naudodami funkciją FORMAT

VBA mes turime funkciją, pavadintą FORMAT, kurią galima naudoti norimam formato pritaikymui langelyje.

Mes tiesiog turime nurodyti, kokia yra „Expression“ vertė, ir atitinkamai pritaikyti „Format“.

Pažiūrėkite į žemiau pateiktą kodą.

Kodas:

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

Pirmiau pateiktame kode aš apibrėžiau kintamąjį kaip variantą (kuriame gali būti bet kokia reikšmė).

Kodas:

„Dim MyVal“ kaip variantas

Toliau šiam kintamajam priskyriau vertę kaip 43586.

Kodas:

„MyVal“ = 43586

Tada pranešimų laukelyje aš parodžiau kintamojo rezultatą, tačiau prieš parodydami rezultatą, naudojome funkciją „ FORMAT “, kad suformatuotume kintamojo „MyVal“ vertę , ir pateikiamas formatas. „ DD-MM-YYYY“.

Kodas:

„MsgBox“ formatas („MyVal“, „MMM-MMMM“)

Gerai, paleiskime kodą ir pamatykime rezultatą VBA pranešimų laukelyje.

Išvestis:

Kaip matote aukščiau, rezultatas rodomas kaip „ 2019-05-01 “.

Dabar jums įdomu, ar mes pateikėme serijos numerį, bet rezultatas rodomas kaip data. Taip yra todėl, kad „Excel“ saugo datą kaip serijos numerius, taigi vertė 43586 yra lygi datai „2019-05-01“, o jei padidinsite skaičių 1, ty, 43587, data bus „2019-05-02“. “.

Kodas:

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

Ką reikia atsiminti

  • Numatytoji jūsų sistemos data bus taikoma ir jūsų „Excel“.
  • Ypatybė „Numeris formatas“ gali būti naudojama norint pakeisti datos formatą VBA.
  • Naudodamiesi funkcija FORMAT, galime pakeisti datos formatą.
  • „Excel“ saugo datą kaip serijos numerius, o jei pritaikysite datos formatą, ji bus atitinkamai rodoma.

Įdomios straipsniai...