Cum să formatați data cu VBA în Excel (4 metode)

  • Imparte Asta
Hugh West

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.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.