Sådan formateres dato med VBA i Excel (4 metoder)

  • Del Dette
Hugh West

Gennemførelse af VBA-makro er den mest effektive, hurtigste og sikreste metode til at udføre enhver operation i Excel. I denne artikel vil vi vise dig, hvordan du formaterer datoen i Excel ved hjælp af VBA .

Download arbejdsbog

Du kan downloade den gratis Excel-arbejdsbog til øvelser her.

Formater dato med VBA.xlsm

4 metoder til at formatere dato i Excel med VBA

Se på følgende eksempel: Vi har gemt de samme datoer i begge Kolonne B og C så vi, når vi formaterer datoen i Kolonne C , vil du vide fra den B-kolonne i hvilket format datoen var før.

1. VBA til at formatere dato fra en type til en anden i Excel

Lad os først se, hvordan du formaterer datoen fra Celle C5 i vores givne datasæt med VBA til " Tirsdag-januar-2022 ".

Trin:

  • Tryk på Alt + F11 på dit tastatur eller gå til fanen Udvikler -> Visual Basic for at åbne Visual Basic-editor .

  • I pop-up kodevinduet skal du på menulinjen klikke på Indsæt -> Modul .

  • Kopier følgende kode, og indsæt den i kodevinduet.
 Sub DateFormat() Range("C5").NumberFormat = "dddd-mmmm-mm-yyyy" 'Dette vil formatere datoen til "Tuesday-January-2022" End Sub 

Din kode er nu klar til at køre.

  • Tryk på F5 på dit tastatur eller på menulinjen vælge Kør -> Kør Sub/UserForm Du kan også bare klikke på lille Play-ikon i undermenulinjen for at køre makroen.

Denne kode vil formatere datoen " 11-01-22 " til " Tirsdag-januar-2022 ".

Du kan også konvertere dette datoformat til mange andre formater. Følg koden nedenfor for at omdanne datoen til det format, du har brug for.

 Sub FormatDate() 'Oprindelig dato er "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'Dette vil formatere datoen til "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'Dette vil formatere datoen til "Tue-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'Dette vil formatere datoen til "Tuesday-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'Dette vil formatere datoen til"11-Jan-2022" Range("C9").NumberFormat = "dd-mmmm-yyyy" 'Dette vil formatere datoen til "11-January-2022" Range("C10").NumberFormat = "dd-mm-yy" 'Dette vil formatere datoen til "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" 'Dette vil formatere datoen til "Tue Jan 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" 'Dette vil formatere datoen til "Tuesday January 2022" End Sub 

Oversigt

Læs mere: Nu og Format-funktioner i Excel VBA

2. Indlejrer VBA til at konvertere dato med FORMAT-funktionen

Excel har sit eget serienummer for de enkelte datoer. Hvis du ønsker at kende serienummeret for en hvilken som helst

bestemte dato, skal du ansøge DATEVALUE-funktionen .

Antag, at du ønsker at kende serienummeret på datoen " 11. januar 2022 ", så skal du skrive formlen som,

=DATEVALUE("11. januar 2022")

Excel vil give dig serienummeret 44572 af denne dato.

Nu skal vi omdanne dette tal til det relevante datoformat.

Trin:

  • På samme måde som før, åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Kopier følgende kode i kodevinduet, og indsæt den.
 Sub Format_Date() Dim iDate As Variant iDate = 44572 'Excel serienummer for dato "11. januar 2022" MsgBox Format(iDate, "DD-MMMM-YYYYY") End Sub 

Din kode er nu klar til at køre.

Du vil få datoen " 11. januar 2022 " i meddelelsesboksen.

Læs mere: Sådan bruger du VBA DateValue-funktionen i Excel

Lignende læsninger

  • Sådan indsætter du den aktuelle dato i Excel (3 måder)
  • Datovariabel i VBA-koder (7 anvendelser af makroer med eksempler)
  • Få den aktuelle dato i VBA (3 måder)
  • Sådan bruger du Excel Dato-genvej

3. VBA til at omdanne dato baseret på en bestemt del i Excel

Hvis du ønsker at formatere en bestemt del af datoen, f.eks. kun dag/måned/år, så skriv koden som følger,

 Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Dette vil formatere datoen til "januar" End Sub 

Din kode er nu klar til at køre.

Den " mmmm " i denne kode betyder den lange form af månedens navn.

Da datoen er " 11. januar 2022 ", så dette stykke kode vil returnere " Januar ".

Du kan implementere denne kode til at formatere og udtrække en bestemt del af datoen.

 Sub FormatDateValue() 'Oprindelig dato er "11-01-22" Range("C5").NumberFormat = "dd" 'Dette vil formatere datoen til "11" Range("C6").NumberFormat = "ddd" 'Dette vil formatere datoen til "Tue" Range("C7").NumberFormat = "dddd" 'Dette vil formatere datoen til "Tuesday" Range("C8").NumberFormat = "m" 'Dette vil formatere datoen til "1" Range("C9").NumberFormat = "mm" 'Dette vil formatere datoen til "1" Range("C9").NumberFormat = "mm" 'Dette vilDette vil formatere datoen til "01" Range("C10").NumberFormat = "mmm" 'Dette vil formatere datoen til "Jan" Range("C11").NumberFormat = "yy" 'Dette vil formatere datoen til "22" Range("C12").NumberFormat = "yyyy" 'Dette vil formatere datoen til "2022" Range("C13").NumberFormat = "dd-mm" 'Dette vil formatere datoen til "11-01" Range("C14").NumberFormat = "mm-yyy" 'Dette vil formatere datoen til "2022" Range("C14").NumberFormat = "mm-yyy" 'Dette vil formatere datoen til "01-01" Range("C14").NumberFormat = "mm-yyy" 'Dette vil formatere datoen til "01-01" Range("C14").NumberFormat = "mm-yyydato til "01-2022" Range("C15").NumberFormat = "mmm-yyy" 'Dette vil formatere datoen til "Jan-2022" Range("C16").NumberFormat = "dd-yy" 'Dette vil formatere datoen til "11-22" Range("C17").NumberFormat = "ddd yyyy" 'Dette vil formatere datoen til "Tue 2022" Range("C18").NumberFormat = "dddd-yyyy" 'Dette vil formatere datoen til "Tuesday-2022" Range("C19").NumberFormat = "dd-mmm"'Dette vil formatere datoen til "11-Jan" Range("C20").NumberFormat = "dddd-mmmmmm" 'Dette vil formatere datoen til "tirsdag-januar" End Sub 

Oversigt

4. Indsæt VBA til at formatere dato i et bestemt regneark i Excel

Hvis du vil formatere en dato baseret på et bestemt regneark, skal du først angive regnearkets navn i koden og derefter formatere datoen i overensstemmelse med den ønskede type.

  • Åbn Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
  • Kopier følgende kode i kodevinduet, og indsæt den.
 Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") 'Indstil regnearket med navnet "Example" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, yyyy" End Sub 

Din kode er nu klar til at køre.

Se den 3. linje i koden, hvor vi først sætter " Eksempel " regneark og formaterer derefter datoen for det pågældende Excel-ark.

Konklusion

Denne artikel viste dig, hvordan du formaterer datoen i Excel med VBA Jeg håber, at denne artikel har været til stor gavn for dig. Du er velkommen til at spørge, hvis du har spørgsmål til emnet.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.