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

„Excel VBA“ formato data

Norėdami formatuoti 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 ir tas pats dalykas 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 pirmiau 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.

Šį VBA formato datos „Excel“ šabloną galite atsisiųsti čia - VBA datos „Excel“ šablonas

1 pavyzdys

Pavyzdžiui, 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 

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

Kodas:

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

Kai vykdysime šį kodą, langelyje A1 numerių formatas bus „ DD-MM-YYY “.

Išvestis:

2 pavyzdys

Panašiai ir kitiems langeliams pritaikiau skirtingus formatavimo kodus, o žemiau yra VBA kodas jums.

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 "'Data bus pakeista į„ 2019 m. Spalio trečiadienis “pabaigos antrinė dalis

Šio kodo rezultatas bus toks.

Išvestis:

Pakeiskite datos formatą naudodami funkciją FORMAT

VBA 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 variantas 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

Toliau pranešimų laukelyje aš parodžiau kintamojo rezultatą, tačiau prieš rodydami rezultatą, naudojome funkciją „ FORMAT “, kad suformatuotume kintamojo „ MyVal “ vertę, o formatas yra „ 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, todėl 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 kaip variantas MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYY") Pabaigos antrinis 

Ką reikia atsiminti

  • Numatytoji 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.

$config[zx-auto] not found$config[zx-overlay] not found