Indholdsfortegnelse
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.