Cuprins
Implementarea Macro VBA este cea mai eficientă, mai rapidă și mai sigură metodă de a executa orice operațiune în Excel. În acest articol, vă vom arăta cum să formatați data în Excel folosind VBA .
Descărcați caietul de lucru
Puteți descărca gratuit caietul de lucru Excel de practică de aici.
Formatați data cu VBA.xlsm
4 Metode pentru a formata data în Excel cu VBA
Priviți exemplul următor. Am stocat aceleași date în ambele Coloana B și C astfel încât, atunci când formatul datei în Coloana C , veți ști din Coloana B în ce format a fost data anterioară.
1. VBA pentru a formata data de la un tip la altul în Excel
În primul rând să știm cum să formatăm data din Celula C5 în setul nostru de date dat cu VBA la " Marți-ianuarie-2022 ".
Pași:
- Presa Alt + F11 de pe tastatură sau mergeți la fila Dezvoltator -> Visual Basic pentru a deschide Editor Visual Basic .
- În fereastra de cod pop-up, din bara de meniu, faceți clic pe Inserare -> Modul .
- Copiați următorul cod și lipiți-l în fereastra de cod.
Sub DateFormat() Range("C5").NumberFormat = "dddd-mmmm-yyyy" 'Acest lucru va formata data în "marți-ianuarie-2022" End Sub
Codul dumneavoastră este acum gata de a fi executat.
- Apăsați F5 de pe tastatură sau, din bara de meniu, selectați Run -> Run Sub/UserForm Puteți, de asemenea, să faceți clic pe pictograma mică de redare din bara de submeni pentru a rula macrocomenzul.
Acest cod va formata data " 11-01-22 " în " Marți-ianuarie-2022 ".
De asemenea, puteți converti acest format de dată în multe alte formate. Urmați codul de mai jos pentru a transforma data în formatul dorit.
Sub FormatDate() 'Data originală este "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'Aceasta va formata data la "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'Aceasta va formata data la "marți-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'Aceasta va formata data la "marți-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'Aceasta va formata data la "marți-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'Aceasta va formata data la"11-Jan-2022" Range("C9").NumberFormat = "dd-mmmm-yyyy" 'Aceasta va formata data la "11-ianuarie-2022" Range("C10").NumberFormat = "dd-mm-yy" 'Aceasta va formata data la "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" 'Aceasta va formata data la "marți ianuarie 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" 'Aceasta va formata data la "marți ianuarie 2022" End Sub
Prezentare generală
Citește mai mult: Acum și funcții de formatare în Excel VBA
2. Încorporați VBA pentru a converti data cu funcția FORMAT
Excel are propriul număr de serie în ceea ce privește datele individuale. Dacă doriți să cunoașteți numărul de serie al oricărei
dată specifică, trebuie să aplicați funcția DATEVALUE .
Să presupunem că doriți să aflați numărul de serie al datei " 11 ianuarie 2022 ", atunci trebuie să scrieți formula ca,
=DATEVALUE("11 ianuarie 2022")
Excel vă va oferi numărul de serie 44572 de la această dată.
Acum vom transforma acest număr în formatul de dată relevant.
Pași:
- În același mod ca și înainte, deschideți Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
- În fereastra de cod, copiați următorul cod și lipiți-l.
Sub Format_Date() Dim iDate As Variant iDate = 44572 'Numărul de serie Excel al datei "11 ianuarie 2022" MsgBox Format(iDate, "DD-MMMM-YYYY") End Sub
Codul dumneavoastră este acum gata de a fi executat.
Veți obține data " 11 ianuarie 2022 " în caseta de mesaje.
Citiți mai mult: Cum se utilizează funcția VBA DateValue în Excel
Lecturi similare
- Cum se introduce data curentă în Excel (3 moduri)
- Variabila dată în codurile VBA (7 utilizări ale macrourilor cu exemple)
- Obțineți data curentă în VBA (3 moduri)
- Cum se utilizează Excel Data Shortcut
3. VBA pentru a transforma data pe baza unei anumite părți în Excel
Să presupunem că doriți să formatați o anumită parte a datei, de exemplu, doar ziua/luna/an, atunci scrieți codul astfel,
Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Aceasta va formata data în "ianuarie" End Sub
Codul dumneavoastră este acum gata de a fi executat.
" mmmm " din acest cod înseamnă forma lungă a numelui lunii.
Deoarece data este " 11 ianuarie 2022 ", astfel încât această bucată de cod va returna " Ianuarie ".
Puteți implementa acest cod pentru a formata și extrage orice parte specifică pe care o doriți din dată.
Sub FormatDateValue() 'Data originală este "11-01-22" Range("C5").NumberFormat = "dd" 'Aceasta va formata data la "11" Range("C6").NumberFormat = "ddd" 'Aceasta va formata data la "marți" Range("C7").NumberFormat = "dddd" 'Aceasta va formata data la "marți" Range("C8").NumberFormat = "m" 'Aceasta va formata data la "1" Range("C9").NumberFormat = "mm" 'Aceasta va formata data la "1" Range("C9").NumberFormat = "mm" 'Aceasta va formata data la "1" Range("C9").NumberFormat = "mm" 'Aceasta va formata data la "1" Range("C9").NumberFormat = "mmFormatează data la "01" Range("C10").NumberFormat = "mmm" 'Aceasta va formata data la "Jan" Range("C11").NumberFormat = "yy" 'Aceasta va formata data la "22" Range("C12").NumberFormat = "yyyy" 'Aceasta va formata data la "2022" Range("C13").NumberFormat = "dd-mm" 'Aceasta va formata data la "11-01" Range("C14").NumberFormat = "mm-yyy" 'Aceasta va formata data la "11-01" Range("C14").NumberFormat = "mm-yyy" 'Aceasta va formata data ladata la "01-2022" Range("C15").NumberFormat = "mmm-yyyy" 'Aceasta va formata data la "Jan-2022" Range("C16").NumberFormat = "dd-yy" 'Aceasta va formata data la "11-22" Range("C17").NumberFormat = "ddd yyyy" 'Aceasta va formata data la "Tue 2022" Range("C18").NumberFormat = "dddd-yyyy" 'Aceasta va formata data la "Tuesday-2022" Range("C19").NumberFormat = "dd-mmm"'Aceasta va formata data în "11-Jan" Range("C20").NumberFormat = "dddd-mmmm" 'Aceasta va formata data în "marți-ianuarie" End Sub
Prezentare generală
4. Introduceți VBA pentru a formata data într-o anumită foaie de lucru în Excel
Dacă doriți să formatați o dată în funcție de o anumită foaie de calcul, atunci mai întâi trebuie să setați numele foii de calcul în cod, apoi formatați data în funcție de tipul dorit.
- Deschideți Editor Visual Basic de la Dezvoltator fila și Introduceți a Modul în fereastra de cod.
- În fereastra de cod, copiați următorul cod și lipiți-l.
Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") 'Setați foaia de lucru numită "Example" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, yyyy" End Sub
Codul dumneavoastră este acum gata de a fi executat.
Uitați-vă la linia a 3-a din cod, unde mai întâi setează " Exemplu ", apoi formatați data acelei anumite foi Excel.
Concluzie
Acest articol v-a arătat cum să formatați data în Excel cu VBA . sper că acest articol a fost foarte benefic pentru dvs. Nu ezitați să mă întrebați dacă aveți întrebări legate de acest subiect.