Datum oblike zapisa VBA - Kako spremeniti obliko datuma v kodi VBA?

Datum zapisa oblike zapisa VBA v programu Excel

Za formatiranje datuma v VBA uporabljamo vgrajeno funkcijo FORMAT, ki vnese format zapisa datuma in vrne želeno obliko, argumenti, potrebni za to funkcijo, so izraz in vrsta oblike.

Oblikovanje datuma in ure sta v Excelu občutljive stvari, enako velja tudi za VBA. Privzeti datum in čas temeljita na sistemskem datumu, na katerega delamo, ki se lahko razlikuje od sistema do sistema. V tem članku vam bomo prikazali različne tehnike formatiranja datumov s kodami VBA.

Če želimo spremeniti obliko datuma s kodiranjem VBA, se moramo zavedati, kakšne so oblike zapisa datumov in njihov vpliv na datum.

Spodnja tabela prikazuje različno oblikovanje datuma in njihove kode.

Torej, če upoštevate zgornji grafikon, formatiranje datuma s kodiranjem VBA sploh ni težka naloga.

Kako spremeniti obliko datuma v VBA?

Spodaj so primeri oblike zapisa datuma excel VBA.

Primer # 1

Na primer, imamo isti datum v več celicah delovnega lista, kot je prikazano spodaj.

Zdaj bomo uporabili različne oblike datumov za isti datum, da bomo videli vpliv na različne kode formatov datuma.

Najprej kopirajte iste podatke tudi v naslednji stolpec, da vidite vpliv.

Za prvi datum, tj. Celico A1, bomo uporabili format »DD-MM-LLLL« .

V kodi moramo najprej izbrati celico z uporabo predmeta RANGE .

Koda:

Sub Date_Format_Example1 () Obseg ("A1") Konec Sub

Ker spreminjamo format datuma celice, moramo dostopati do lastnosti » Številčna oblika « predmeta RANGE.

Koda:

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

Po dostopu do » Format števila « moramo nastaviti format številke tako, da postavimo enačbo in v dvojne narekovaje uporabimo kodo oblike.

Koda:

Sub Date_Format_Example1 () Obseg ("A1"). NumberFormat = "dd-mm-llll" 'Datum bo spremenjen na "23-10-2019" End Sub

Ko izvedemo to kodo, bo za celico A1 uporabil številčni format kot » DD-MM-LLL«.

Izhod:

2. primer

Podobno sem uporabil različne kode za oblikovanje tudi za druge celice, spodaj pa je koda VBA za vas.

Koda:

Sub Date_Format_Example2 () Obseg ("A1"). NumberFormat = "dd-mm-llll" 'Datum bo spremenjen v obseg "23-10-2019" ("A2"). NumberFormat = "ddd-mm-llll" 'S tem se bo datum spremenil v obseg "Wed-10-2019" ("A3"). NumberFormat = "dddd-mm-yyy" "Datum bo spremenjen v obseg" Wednesday-10-2019 "(" A4 ") .NumberFormat = "dd-mmm-llll" 'Datum bo spremenjen v obseg "23. oktober 2019" ("A5"). NumberFormat = "dd-mmmm-llll"' Datum bo spremenjen na "23- Oktober-2019 "Obseg (" A6 "). NumberFormat =" dd-mm-yy "'Datum bo spremenjen v" 23-10-19 "Obseg (" A7 "). NumberFormat =" ddd mmm llll " bo datum spremenil v "sreda, oktober 2019"Obseg ("A8"). NumberFormat = "dddd mmmm yyyy" 'Datum bo spremenjen v "Sreda oktober 2019" Konec Sub

Rezultat te kode bo naslednji.

Izhod:

Spremenite obliko datuma s funkcijo FORMAT

V VBA imamo funkcijo FORMAT, s katero lahko uporabimo želeno obliko v celici.

Določiti moramo le, kakšna je vrednost za »Expression« in v skladu s tem uporabiti »Format«.

Za primer si oglejte spodnjo kodo.

Koda:

Sub Date_Format_Example3 () Dim MyVal kot varianta MyVal = 43586 MsgBox Format (MyVal, "DD-MM-LLLL") Konec Sub

V zgornji kodi sem spremenljivko opredelil kot različico (ki lahko vsebuje katero koli vrednost).

Koda:

Zatemni MyVal kot različico

Naslednje za to spremenljivko sem dodelil vrednost 43586.

Koda:

MyVal = 43586

Nato v polju za sporočilo, sem pokazala rezultat spremenljivke, vendar preden smo pokazati rezultate, ki smo jih uporabili " FORMAT " funkcijo za formatiranje vrednost spremenljivke "MyVal , " in je glede na format. » DD-MM-LLLL.«

Koda:

Oblika zapisa MsgBox (MyVal, "DD-MM-LLL")

Ok, zaženimo kodo in si oglejte rezultat v polju za sporočila v VBA.

Izhod:

Kot lahko vidite zgoraj, je rezultat prikazan kot " 01-05-2019 ".

Zdaj se gotovo sprašujete, ali smo navedli serijsko številko, vendar je rezultat prikazan kot datum. To je zato, ker Excel datum shrani kot serijske številke, zato je vrednost 43586 enaka datumu "01-05-2019", in če število povečate za 1, tj. 43587, bo datum "02-05-2019 ".

Koda:

Sub Date_Format_Example3 () Dim MyVal kot varianta MyVal = 43586 MsgBox Format (MyVal, "DD-MM-LLL") Konec Sub

Stvari, ki si jih je treba zapomniti

  • Privzeti datum vašega sistema bo veljal tudi za vaš excel.
  • Z lastnostjo Številčni format lahko spremenite obliko datuma v VBA.
  • S pomočjo funkcije FORMAT lahko spremenimo obliko datuma.
  • Excel shrani datum kot serijsko številko in če uporabite obliko datuma, se bo ustrezno prikazal.

Zanimive Članki...