Hur man formaterar datum med VBA i Excel (4 metoder)

  • Dela Detta
Hugh West

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.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.