Kazalo
Izvajanje Makro VBA je najučinkovitejša, najhitrejša in najvarnejša metoda za izvedbo katere koli operacije v Excelu. V tem članku vam bomo pokazali, kako formatirati datum v Excelu z uporabo VBA .
Prenos delovnega zvezka
Brezplačni delovni zvezek Excel lahko prenesete s tega mesta.
Oblikovanje datuma z VBA.xlsm
4 metode za oblikovanje datuma v Excelu z VBA
Oglejte si naslednji primer. Iste datume smo shranili v oba Stolpec B in . C tako da pri oblikovanju datuma v Stolpec C , boste izvedeli iz Stolpec B v katerem formatu je bil datum prej.
1. VBA za oblikovanje datuma iz ene vrste v drugo v Excelu
Najprej povejmo, kako oblikovati datum iz Celica C5 v našem danem naboru podatkov z VBA na " torek-januar-2022 ".
Koraki:
- Pritisnite Alt + F11 na tipkovnici ali odprite zavihek Razvijalec -> Visual Basic da odprete Urejevalnik Visual Basic .
- V pojavnem oknu kode v menijski vrstici kliknite Vstavljanje -> Modul .
- Kopirajte naslednjo kodo in jo prilepite v okno s kodo.
Sub DateFormat() Range("C5").NumberFormat = "dddd-mmmm-yyyy" 'To bo formatiralo datum na "Torek-Januar-2022" End Sub
Vaša koda je zdaj pripravljena za zagon.
- Pritisnite F5 na tipkovnici ali v menijski vrstici izberite Run -> Run Sub/UserForm Lahko tudi kliknete na majhna ikona za predvajanje v podmeniju za zagon makra.
Ta koda bo oblikovala datum " 11-01-22 " v " torek-januar-2022 ".
To obliko datuma lahko pretvorite tudi v številne druge oblike. Za pretvorbo datuma v želeno obliko sledite spodnji kodi.
Sub FormatDate() 'Izvirni datum je "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'To bo formatiralo datum na "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'To bo formatiralo datum na "Tue-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'To bo formatiralo datum na "Tuesday-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'To bo formatiralo datum na"11-Jan-2022" Range("C9").NumberFormat = "dd-mmmm-yyy" "To bo formatiralo datum na "11-Januar-2022" Range("C10").NumberFormat = "dd-mm-yy" "To bo formatiralo datum na "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" "To bo formatiralo datum na "Tue Jan 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" "To bo formatiralo datum na "Tuesday January 2022" End Sub
Pregled
Preberite več: Funkcije Zdaj in Oblika v Excelu VBA
2. Vgradnja VBA za pretvorbo datuma s funkcijo FORMAT
Excel ima svojo serijsko številko za posamezne datume. Če želite izvedeti serijsko številko katerega koli
določen datum, morate zaprositi za funkcija DATEVALUE .
Recimo, da želite izvedeti serijsko številko datuma " 11. januar 2022 ", potem morate formulo zapisati kot,
=DATEVALUE("11 januar 2022")
Excel vam bo dal serijsko številko 44572 tega datuma.
Zdaj bomo to število pretvorili v ustrezno obliko datuma.
Koraki:
- Na enak način kot prej odprite Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Sub Format_Date() Dim iDate As Variant iDate = 44572 "Excelova serijska številka datuma "11 January 2022" MsgBox Format(iDate, "DD-MMMM-YYYY") End Sub
Vaša koda je zdaj pripravljena za zagon.
Dobili boste datum " 11. januar 2022 " v polju za sporočila.
Preberite več: Kako uporabljati funkcijo VBA DateValue v Excelu
Podobna branja
- Kako vstaviti trenutni datum v Excel (3 načini)
- Spremenljivka datuma v kodah VBA (7 uporab makrov s primeri)
- Pridobivanje trenutnega datuma v programu VBA (3 načini)
- Kako uporabljati bližnjico za datum v Excelu
3. VBA za preoblikovanje datuma na podlagi določenega dela v Excelu
Če želite oblikovati določen del datuma, na primer samo dan/mesec/leto, napišite kodo, kot je,
Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'To bo formatiralo datum v "januar" End Sub
Vaša koda je zdaj pripravljena za zagon.
" mmmm " v tej kodi pomeni dolgo obliko imena meseca.
Ker je datum " 11. januar 2022 ", zato bo ta del kode vrnil " Januar ".
To kodo lahko uporabite za formatiranje in izločanje določenega dela datuma, ki ga želite.
Sub FormatDateValue() 'Izvirni datum je "11-01-22" Range("C5").NumberFormat = "dd" 'To bo formatiralo datum na "11" Range("C6").NumberFormat = "ddd" 'To bo formatiralo datum na "Tue" Range("C7").NumberFormat = "dddd" 'To bo formatiralo datum na "Tuesday" Range("C8").NumberFormat = "m" 'To bo formatiralo datum na "1" Range("C9").NumberFormat = "mm" 'To boformatirati datum na "01" Range("C10").NumberFormat = "mmm" "To bo formatiralo datum na "Jan" Range("C11").NumberFormat = "yy" "To bo formatiralo datum na "22" Range("C12").NumberFormat = "yyyy" "To bo formatiralo datum na "2022" Range("C13").NumberFormat = "dd-mm" "To bo formatiralo datum na "11-01" Range("C14").NumberFormat = "mm-yyy" "To bo formatiralo datumdatum na "01-2022" Range("C15").NumberFormat = "mmm-yyy" "To bo formatiralo datum na "Jan-2022" Range("C16").NumberFormat = "dd-yy" "To bo formatiralo datum na "11-22" Range("C17").NumberFormat = "ddd yyyy" "To bo formatiralo datum na "Tue 2022" Range("C18").NumberFormat = "dddd-yyyy" "To bo formatiralo datum na "Tuesday-2022" Range("C19").NumberFormat = "dd-mmm"'To bo formatiralo datum na "11-Jan" Range("C20").NumberFormat = "dddd-mmmm" 'To bo formatiralo datum na "Torek-Januar" End Sub
Pregled
4. Vstavite VBA za oblikovanje datuma v določenem delovnem listu v Excelu
Če želite datum oblikovati na podlagi določenega delovnega lista, morate v kodi najprej nastaviti ime delovnega lista, nato pa datum oblikovati v skladu z želeno vrsto.
- Odpri Urejevalnik Visual Basic iz Razvijalec zavihek in Vstavite a Modul v oknu kode.
- V oknu s kodo kopirajte naslednjo kodo in jo prilepite.
Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Primer") "Nastavite delovni list z imenom "Primer" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, yyyy" End Sub
Vaša koda je zdaj pripravljena za zagon.
Oglejte si tretjo vrstico kode, v kateri najprej nastavimo " Primer " delovnega lista nato oblikujte datum tega določenega lista Excel.
Zaključek
V tem članku je bilo prikazano, kako formatirati datum v Excelu z VBA Upam, da vam je ta članek zelo koristil. Če imate kakršna koli vprašanja v zvezi s to temo, vas prosim, da jih postavite.