Hur konverterar jag snabbt datum till ord i Excel?
I allmänhet konverterar vi vanligtvis datumet till andra datumformat eller siffror i Excel, men har du någonsin stött på ett problem med att konvertera datumet till engelska ord som bilden nedan visas? Egentligen finns det ingen inbyggd funktion som kan hantera den utan en VBA-kod.
Konvertera datum till ord med definierad funktion
Konvertera datum till ord med definierad funktion
Här är en makrokod som kan göra dig en tjänst när du konverterar datum till ord.
1. Aktivera det ark du använder och tryck på Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
2. klick Insert > Modulerna och klistra in under koden i skriptet.
VBA: Konvertera datum till ord
Function DateToWords(ByVal xRgVal As Date) As String
' Update by Extendoffice on 20240926
Dim xYear As String
Dim Hundreds As String
Dim Decades As String
Dim xTensArr As Variant
Dim xOrdArr As Variant
Dim xCardArr As Variant
' Initialize arrays
xOrdArr = Array("First", "Second", "Third", "Fourth", "Fifth", "Sixth", _
"Seventh", "Eighth", "Ninth", "Tenth", "Eleventh", "Twelfth", _
"Thirteenth", "Fourteenth", "Fifteenth", "Sixteenth", _
"Seventeenth", "Eighteenth", "Nineteenth", "Twentieth", _
"Twenty-first", "Twenty-second", "Twenty-third", "Twenty-fourth", _
"Twenty-fifth", "Twenty-sixth", "Twenty-seventh", "Twenty-eighth", _
"Twenty-ninth", "Thirtieth", "Thirty-first")
xCardArr = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", _
"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", _
"Seventeen", "Eighteen", "Nineteen")
xTensArr = Array("Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
' Extract year
xYear = CStr(Year(xRgVal))
Decades = Mid$(xYear, 3)
' Handle decades
If CInt(Decades) < 20 Then
Decades = xCardArr(CInt(Decades))
Else
Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & xCardArr(CInt(Right$(Decades, 1)))
End If
' Handle hundreds
Hundreds = Mid$(xYear, 2, 1)
If CInt(Hundreds) Then
Hundreds = xCardArr(CInt(Hundreds)) & " Hundred "
Else
Hundreds = ""
End If
' Construct English representation of the date
DateToWords = xOrdArr(Day(xRgVal) - 1) & " " & Format$(xRgVal, "mmmm") & " " & _
xCardArr(CInt(Left$(xYear, 1))) & " Thousand " & Hundreds & Decades
End Function
3. Spara koden och gå tillbaka till arket, välj en cell som du ska skriva ut resultatet i, skriv den här formeln = DateToWords (A2) (A2 är det datum du använder), tryck på ange tangent och dra handtaget för automatisk fyllning till över cellerna du behöver. Se skärmdump:
Lås upp bekvämligheten med att omedelbart konvertera siffror till ord i Excel med Kutools för Excels Numbers to Words-funktion, vilket sparar tid och ansträngning för att skapa professionella dokument utan ansträngning!
Relativa artiklar:
- Hur konverterar jag snabbt datumformat mellan Europa och USA i Excel?
- Hur konverterar man dD.MM.YYYY till datumformat (mM / DD / YYYY) i Excel?
- Hur konverterar man mellan datum och Unix-tidsstämpel i Excel?
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!