Excel nema podrazumevanu funkciju koja prikazuje brojeve kao reči na engleskom jeziku u radnom listu, ali tu mogućnost možete dodati tako što ćete nalepiti sledeći spellNumber kôd funkcije u VBA (Visual Basic for Applications) modul. Ova funkcija vam omogućava da konvertujete iznos dolara i centa u reči pomoću formule, tako da će 22,50 biti pročitano kao Twenty-Two dolara i pedeset centi. To može biti veoma korisno ako koristite Excel kao predložak za štampanje provera.
Ako želite da konvertujete numeričke vrednosti u format teksta bez prikazivanja kao reči, umesto toga koristite funkciju TEXT .
Napomena: Microsoft pruža primere za programiranje samo za ilustraciju, bez izražene ili podrazumevane garancije. To uključuje, ali nije ograničeno na, podrazumevane garancije za podstiču na raspoređenu robu ili podnožje za određenu svrhu. Ovaj članak pretpostavlja da ste upoznati sa VBA programiranim jezikom i sa alatkama koje se koriste za kreiranje i otklanjanje grešaka u procedurama. Inženjeri Microsoft podrške mogu da objasne funkcionalnost određene procedure. Međutim, oni neće izmeniti ove primere da bi obezbedili dodatnu funkcionalnost ili da bi konstruisali procedure koje ispunjavaju vaše određene zahteve.
Kreiranje funkcije SpellNumber za konvertovanje brojeva u reči
-
Koristite tastersku prečicu Alt + F11 da biste otvorili Visual Basic Editor (VBE).
Napomena: Visual Basic Editor možete da pristupite i tako što ćete na traci prikazati karticu Projektovanje.
-
Izaberite karticu Umetanje i kliknite na dugme Modul.
-
Kopirajte sledeće redove koda.
Napomena: Poznat kao korisnički definisana funkcija (UDF), ovaj kôd automatizuje zadatak konvertovanja brojeva u tekst u celom radnom listu.
Option Explicit 'Main Function Function SpellNumber(ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " ' String representation of amount. MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace = InStr(MyNumber, ".") ' Convert cents and set MyNumber to dollar amount. If DecimalPlace > 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars & " Dollars" End Select Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumber = Dollars & Cents End Function ' Converts a number from 100-999 into text Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) ' Convert the hundreds place. If Mid(MyNumber, 1, 1) <> "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred " End If ' Convert the tens and ones place. If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function ' Converts a number from 10 to 99 into text. Function GetTens(TensText) Dim Result As String Result = "" ' Null out the temporary function value. If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19... Select Case Val(TensText) Case 10: Result = "Ten" Case 11: Result = "Eleven" Case 12: Result = "Twelve" Case 13: Result = "Thirteen" Case 14: Result = "Fourteen" Case 15: Result = "Fifteen" Case 16: Result = "Sixteen" Case 17: Result = "Seventeen" Case 18: Result = "Eighteen" Case 19: Result = "Nineteen" Case Else End Select Else ' If value between 20-99... Select Case Val(Left(TensText, 1)) Case 2: Result = "Twenty " Case 3: Result = "Thirty " Case 4: Result = "Forty " Case 5: Result = "Fifty " Case 6: Result = "Sixty " Case 7: Result = "Seventy " Case 8: Result = "Eighty " Case 9: Result = "Ninety " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) ' Retrieve ones place. End If GetTens = Result End Function ' Converts a number from 1 to 9 into text. Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else: GetDigit = "" End Select End Function
-
Nalepite redove koda u polje Modul1 (kôd ).
-
Pritisnite kombinaciju tastera Alt + Q da biste se vratili u Excel. Funkcija SpellNumber je sada spremna za korišćenje.
Napomena: Ova funkcija funkcioniše samo za trenutnu radnu svesku. Da biste koristili ovu funkciju u drugoj radnoj svesci, morate ponoviti korake da biste kopirali i nalepili kôd u tu radnu svesku.
Korišćenje funkcije SpellNumber u pojedinačnim ćelijama
-
Otkucajte formulu =SpellNumber(A1) u ćeliju u kojoj želite da prikažete pisani broj, gde je A1 ćelija koja sadrži broj koji želite da konvertujete. Možete i ručno da otkucate vrednost kao što je =SpellNumber(22,50).
-
Pritisnite taster Enter da biste potvrdili formulu.
Čuvanje radne sveske funkcije SpellNumber
Excel ne može da sačuva radnu svesku sa makro funkcijama u standardnom formatu radne sveske bez makroa (.xlsx). Ako izaberete stavku Datoteka >sačuvaj. Otvara se dijalog VB projekta. Kliknite na dugme Ne.
Datoteku možete da sačuvate kao Excel Macro-Enabled radnu svesku (.xlsm) da biste zadržali datoteku u trenutnom formatu.
-
Izaberite stavku Datoteka > Sačuvaj kao.
-
Kliknite na padajući meni Sačuvaj kao tip i izaberite stavku Excel Macro-Enabled radnoj svesci.
-
Kliknite na dugme Sačuvaj.