Note: The other languages of the website are Google-translated. Back to English

Cum se poate converti rapid data în cuvinte în Excel?

În general, de obicei, convertim data în alte formate de date sau cifre în Excel, dar ați întâmpinat vreodată o problemă legată de conversia datei în cuvinte în limba engleză, așa cum este prezentat mai jos? De fapt, nu există o funcție încorporată care să o poată gestiona, ci un cod VBA.
doc data la cuvintele 1

Convertiți data în cuvânt cu funcția definită


Convertiți data în cuvânt cu funcția definită

Iată un cod macro care vă poate ajuta să convertiți datele în cuvinte.

1. Activați foaia pe care o utilizați și apăsați Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. clic Insera > Module și lipiți codul de mai jos în script.

VBA: convertiți data în cuvânt

Function DateToWords(ByVal xRgVal As Date) As String
'UpdatebyExtendoffice20170926
    Dim xYear As String
    Dim Hundreds As String
    Dim Decades As String
    Dim xTensArr As Variant
    Dim xOrdArr As Variant
    Dim xCardArr As Variant
    xOrdArr = Array("First", "Second", "Third", _
                   "Fourth", "Fifth", "Sixth", _
                   "Seventh", "Eighth", "Nineth", _
                   "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-nineth", "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")
    xYear = CStr(Year(xRgVal))
    Decades = Mid$(xYear, 3)
    If CInt(Decades) < 20 Then
        Decades = xCardArr(CInt(Decades))
    Else
        Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & _
                xCardArr(CInt(Right$(Decades, 1)))
    End If
        Hundreds = Mid$(xYear, 2, 1)
    If CInt(Hundreds) Then
        Hundreds = xCardArr(CInt(Hundreds)) & " Hundred "
    Else
        Hundreds = ""
    End If
    DateToWords = xOrdArr(Day(xRgVal) - 1) & _
                  Format$(xRgVal, " mmmm ") & _
                  xCardArr(CInt(Left$(xYear, 1))) & _
                  " Thousand " & Hundreds & Decades
End Function

doc data la cuvintele 2

3. Salvați codul și reveniți la foaie, selectați o celulă în care veți obține rezultatul, tastați această formulă = DateToWords (A1) (A1 este data pe care o utilizați), apăsați Intrați tasta și trageți mânerul de umplere automată peste celulele de care aveți nevoie. Vedeți captura de ecran:
doc data la cuvintele 3


Numere la cuvinte

doc delimitați numărul 1

Articole relative:


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (23)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
datetowords Formula nu funcționează în toate fișierele exall
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău, ați putea să-mi spuneți ce tip de fișiere excel nu poate funcționa?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aceasta pune o cratimă după decenii peste 20 care se termină cu zero.
Acest comentariu a fost redus la minimum de moderatorul de pe site
S-a remediat cratima după 20, 30, 40 etc.

Adăugați acest lucru după „Dacă CInt(Decenii) < 20 Atunci
Decenii = xCardArr(CInt(Decades))"

ElseIf CInt(Decenii) Ca „*0” Atunci
Decenii = xTensArr(CInt(Left$(Decades, 1)) - 2)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ei bine, funcționează, frumos, dar câteva probleme de format sunt aici, ca 1975 (Nouăsprezece mii șaptezeci și cinci) nu (O mie nouă sute șaptezeci și cinci), dar în cazul peste 20 formatul este corect ca 2011 (două mii unsprezece). ), și, de asemenea, a doua problemă este (singular/plural), aici (O mie, două mii, o sută, nouă sute), Vă rugăm să rezolvați acestea, mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Excelent ...
Acest comentariu a fost redus la minimum de moderatorul de pe site
funcționează bine, dar vreau pentru anii 90 „Nouăsprezece sute” nu „O mie nouă sute”... mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Îmi pare rău, zia khan, nu înțeleg ce vrei să spui că transformă 90 în nouă sute. VBA poate converti numai data în cuvinte, utilitatea Split Out Number convertește numere în cuvinte în monedă engleză
Acest comentariu a fost redus la minimum de moderatorul de pe site
„Nineteen Hundred” se vorbește în engleză, de fapt este greșit.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, putem face acest lucru și în Word docx?
Acest comentariu a fost redus la minimum de moderatorul de pe site
date la cuvânt în limba gujarati avilable? te rog răspunde-mi. 9427909038
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cred că nu funcționează pentru alte limbi, cu excepția englezei.
Acest comentariu a fost redus la minimum de moderatorul de pe site
cum să utilizați acest cod în vb6 pentru o casetă de text
Acest comentariu a fost redus la minimum de moderatorul de pe site
Sir / Madam

Îmi este foarte util.

Cu adevărat uimitor și a ajutat la rezolvarea problemei într-un minut.

Vă mulțumim pentru încărcarea acestui document. Foarte frumos
Acest comentariu a fost redus la minimum de moderatorul de pe site
iti multumesc ca m-ai ajutat. foarte util în conversia datei de naștere în cuvânt
Acest comentariu a fost redus la minimum de moderatorul de pe site
Aș dori să adaug text la rezultat, de exemplu, 1958 este convertit la o mie nouăsprezece sute cincizeci și opt și aș dori să spună o mie nouăsprezece sute și Cincizeci si opt. Poate cineva să-mi dea un exemplu despre cum pot face asta, vă rog?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dă #NUMELE? Eroare
Acest comentariu a fost redus la minimum de moderatorul de pe site
آپ کا بہت شکریہ
Acest comentariu a fost redus la minimum de moderatorul de pe site
07/08/1998 ȘAPTE AUGUST NOASTRE SUTE NOUĂȘTECEȘTI
Am nevoie de dob în cuvinte în format superior, dar folosesc acest micros în Excel, am primit asta
07/08/1998 ȘAPTE AUGUST O MIE NOUĂ SUTE NOUĂȘTEȘTE ȘAPTE, ceea ce nu este util
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, MAX, am modificat VBA, vă rog să încercați și să-mi spuneți dacă funcționează. Mulțumiri.
Function DateToWords(ByVal xRgVal As Date) As String
'UpdatebyExtendoffice20170926
    Dim xYear As String
    Dim Decades As String
    Dim years As String
    Dim xTensArr As Variant
    Dim xyearArr As Variant
    Dim xOrdArr As Variant
    Dim xCardArr As Variant
    xOrdArr = Array("First", "Second", "Third", _
                   "Fourth", "Fifth", "Sixth", _
                   "Seventh", "Eighth", "Nineth", _
                   "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-nineth", "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")
    xYear = CStr(Year(xRgVal))
    
    
      xyearArr = Array("", "One", "Two", "Three", "Four", _
                   "Five", "Six", "Seven", "Eight", "Nine", _
                   "Ten", "Eleven", "Twelve", "Thirteen", _
                   "Fourteen", "Fifteen", "Sixteen", _
                   "Seventeen", "Eighteen", "Nineteen", "Twenty", "Thirty", "Forty", "Fifty", _
               "Sixty", "Seventy", "Eighty", "Ninety")

    years = xyearArr(CInt(Year(xRgVal) / 100)) & " Hundred"
    
    Decades = Mid$(xYear, 3)
    If CInt(Decades) < 20 Then
        Decades = xCardArr(CInt(Decades))
    Else
        Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & _
                xCardArr(CInt(Right$(Decades, 1)))
    End If

    DateToWords = UCase(xOrdArr(Day(xRgVal) - 1) & _
                  Format$(xRgVal, " mmmm ") & _
                  years & " " & Decades)
End Function

Acest comentariu a fost redus la minimum de moderatorul de pe site
07/08/1998 ȘAPTE AUGUST XNUMX
În acest vba au o eroare
convertiți-l în 1998, dar arată DOUĂ zeci de sute nouăzeci și opt
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, încearcă acest vba:
Function DateToWords(ByVal xRgVal As Date) As String
'UpdatebyExtendoffice20170926
    Dim xYear As String
    Dim Decades As String
    Dim years As String
    Dim xTensArr As Variant
    Dim xyearArr As Variant
    Dim xOrdArr As Variant
    Dim xCardArr As Variant
    xOrdArr = Array("First", "Second", "Third", _
                   "Fourth", "Fifth", "Sixth", _
                   "Seventh", "Eighth", "Nineth", _
                   "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-nineth", "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")
    xYear = CStr(Year(xRgVal))
    
    
      xyearArr = Array("", "One", "Two", "Three", "Four", _
                   "Five", "Six", "Seven", "Eight", "Nine", _
                   "Ten", "Eleven", "Twelve", "Thirteen", _
                   "Fourteen", "Fifteen", "Sixteen", _
                   "Seventeen", "Eighteen", "Nineteen", "Twenty", "Thirty", "Forty", "Fifty", _
               "Sixty", "Seventy", "Eighty", "Ninety")

    years = xyearArr(Fix(Year(xRgVal) / 100)) & " Hundred"
    
    Decades = Mid$(xYear, 3)
    If CInt(Decades) < 20 Then
        Decades = xCardArr(CInt(Decades))
    Else
        Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & _
                xCardArr(CInt(Right$(Decades, 1)))
    End If

    DateToWords = UCase(xOrdArr(Day(xRgVal) - 1) & _
                  Format$(xRgVal, " mmmm ") & _
                  years & " " & Decades)
End Function

Acest comentariu a fost redus la minimum de moderatorul de pe site
07/08/1998 ȘAPTE AUGUST XNUMX
În acest vba au o eroare
convertiți-l în 1998, dar arată DOUĂ zeci de sute nouăzeci și opt
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL