Innehållsförteckning
Genomförande av VBA-makro är den mest effektiva, snabbaste och säkraste metoden för att utföra alla operationer i Excel. I den här artikeln kommer vi att visa dig hur du formaterar datumet i Excel med hjälp av VBA .
Ladda ner arbetsboken
Du kan ladda ner den kostnadsfria Excel-arbetsboken för övningar här.
Formatera datum med VBA.xlsm
4 metoder för att formatera datum i Excel med VBA
Titta på följande exempel: Vi har lagrat samma datum i båda Kolumn B och C så att när vi formaterar datumet i Kolumn C , du kommer att känna till det från B-kolonn i vilket format datumet var före.
1. VBA för att formatera datum från en typ till en annan i Excel
Först ska vi veta hur man formaterar datumet från Cell C5 i vårt givna dataset med VBA till " Tisdag - januari 2022 ".
Steg:
- Tryck på Alt + F11 på tangentbordet eller gå till fliken Utvecklare -> Visual Basic för att öppna Redigerare för Visual Basic .
- I popup-kodfönstret klickar du i menyraden på Infoga -> Modul .
- Kopiera följande kod och klistra in den i kodfönstret.
Sub DateFormat() Range("C5").NumberFormat = "ddddd-mmmm-yyyy" 'Detta kommer att formatera datumet till "Tuesday-January-2022" End Sub
Din kod är nu redo att köras.
- Tryck på F5 på tangentbordet eller välj i menyraden Kör -> Kör Sub/UserForm Du kan också bara klicka på liten Play-ikon i undermenyfältet för att köra makrot.
Denna kod formaterar datumet " 11-01-22 " till " Tisdag - januari 2022 ".
Du kan också konvertera det här datumformatet till många andra format. Följ bara koden nedan för att omvandla datumet till det format du vill ha.
Sub FormatDate() 'Originaldatumet är "11-01-22" Range("C5").NumberFormat = "dd-mm-yyy" 'Detta kommer att formatera datumet till "11-01-2022" Range("C6").NumberFormat = "ddd-mm-yyy" 'Detta kommer att formatera datumet till "tis-11-2022" Range("C7").NumberFormat = "dddd-mm-yyy" 'Detta kommer att formatera datumet till "tis-11-2022" Range("C8").NumberFormat = "dd-mmm-yyy" 'Detta kommer att formatera datumet till"11-Jan-2022" Range("C9").NumberFormat = "dd-mmmm-yyy" 'Detta kommer att formatera datumet till "11-januari-2022" Range("C10").NumberFormat = "dd-mm-yy" 'Detta kommer att formatera datumet till "11-01-22" Range("C11").NumberFormat = "ddd mmm yyyy" 'Detta kommer att formatera datumet till "tis jan 2022" Range("C12").NumberFormat = "dddd mmmm yyyy" 'Detta kommer att formatera datumet till "tis jan 2022" End Sub
Översikt
Läs mer: Nu- och formatfunktioner i Excel VBA
2. Inbädda VBA för att konvertera datum med FORMAT-funktionen
Excel har sitt eget serienummer för enskilda datum. Om du vill veta serienumret för någon av följande
datum, måste du ansöka om att få funktionen DATEVALUE .
Antag att du vill veta serienumret för datumet " 11 januari 2022 ", måste du skriva formeln som,
=DATEVALUE("11 januari 2022")
Excel ger dig serienumret 44572 av detta datum.
Nu ska vi omvandla detta nummer till det relevanta datumformatet.
Steg:
- På samma sätt som tidigare, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
- I kodfönstret kopierar du följande kod och klistrar in den.
Sub Format_Date() Dim iDate As Variant iDate = 44572 'Excel-serienummer för datumet "11 januari 2022" MsgBox Format(iDate, "DD-MMMM-YYYYY") End Sub
Din kod är nu redo att köras.
Du får datumet " 11 januari 2022 " i meddelanderutan.
Läs mer: Hur du använder VBA DateValue-funktionen i Excel
Liknande läsningar
- Hur man infogar aktuellt datum i Excel (3 sätt)
- Datumvariabel i VBA-koder (7 användningsområden för makron med exempel)
- Få fram det aktuella datumet i VBA (3 sätt)
- Hur du använder Excel Date Shortcut
3. VBA för att omvandla datum baserat på en specifik del i Excel
Om du vill formatera en viss del av datumet, till exempel bara dag/månad/år, skriv koden som följer,
Sub Date_Format() Range("C5").NumberFormat = "mmmm" 'Detta kommer att formatera datumet till "januari" End Sub
Din kod är nu redo att köras.
Den " mmmm " i den här koden betyder den långa formen av månadens namn.
Eftersom datumet är " 11 januari 2022 ", så denna kod kommer att återge " Januari ".
Du kan använda den här koden för att formatera och extrahera en specifik del av datumet som du vill ha.
Sub FormatDateValue() 'Originaldatum är "11-01-22" Range("C5").NumberFormat = "dd" 'Detta kommer att formatera datumet till "11" Range("C6").NumberFormat = "ddd" 'Detta kommer att formatera datumet till "Tue" Range("C7").NumberFormat = "dddd" 'Detta kommer att formatera datumet till "Tuesday" Range("C8").NumberFormat = "m" 'Detta kommer att formatera datumet till "1" Range("C9").NumberFormat = "mm" 'Detta kommer attDetta kommer att formatera datumet till "01" Range("C10").NumberFormat = "mmm" 'Detta kommer att formatera datumet till "Jan" Range("C11").NumberFormat = "yy" 'Detta kommer att formatera datumet till "22" Range("C12").NumberFormat = "yyyy" 'Detta kommer att formatera datumet till "2022" Range("C13").NumberFormat = "dd-mm" 'Detta kommer att formatera datumet till "11-01" Range("C14").NumberFormat = "mm-yyy" 'Detta kommer att formatera datumet till "2022datum till "01-2022" Range("C15").NumberFormat = "mmm-yyy" 'Detta kommer att formatera datumet till "Jan-2022" Range("C16").NumberFormat = "dd-yy" 'Detta kommer att formatera datumet till "11-22" Range("C17").NumberFormat = "ddd yyyy" 'Detta kommer att formatera datumet till "Tue 2022" Range("C18").NumberFormat = "dddd-yyyy" 'Detta kommer att formatera datumet till "Tuesday-2022" Range("C19").NumberFormat = "dd-mmm"'Detta kommer att formatera datumet till "11-Jan" Range("C20").NumberFormat = "dddd-mmmm" 'Detta kommer att formatera datumet till "tisdag-januari" End Sub
Översikt
4. Infoga VBA för att formatera datum i ett visst arbetsblad i Excel
Om du vill formatera ett datum baserat på ett visst arbetsblad måste du först ange arbetsbladets namn i koden och sedan formatera datumet enligt den typ du vill ha.
- Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
- I kodfönstret kopierar du följande kod och klistrar in den.
Sub Format_Date() Dim iSheet As Worksheet Set iSheet = ThisWorkbook.Sheets("Example") 'Ställ in arbetsbladet "Example" iSheet.Range("C5").NumberFormat = "dddd, mmmmdd, yyyy" End Sub
Din kod är nu redo att köras.
Titta på den 3:e raden i koden där vi först ställer in " Exempel " arbetsbladet och formaterar sedan datumet för det aktuella Excel-arket.
Slutsats
Den här artikeln visade dig hur du formaterar datumet i Excel med VBA Jag hoppas att den här artikeln har varit till stor nytta för dig. Du får gärna fråga om du har några frågor om ämnet.