Преобразуване на числа в думи

Забележка: Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

Excel няма функция по подразбиране, която показва числата като английски думи в работен лист, но можете да добавите тази възможност, като поставите следния код SpellNumber функция в VBA (Visual Basic for Applications) модул. Тази функция ви позволява да конвертирате суми за долар и процента думи с една формула, така че 22,50 ще прочете като двадесет и два лева и 50 стотинки. Това може да бъде много полезно, ако използвате Excel като шаблон, за да отпечатате проверки.

Ако искате да конвертирате числови стойности в текстов формат, без да ги показвате като думи, използвайте функцията TEXT .

Забележка: Microsoft предоставя примери за илюстрация само, без гаранцията или подразбиращи. Това включва, но не се ограничава до, косвени гаранции или фитнес за определена цел. В тази статия предполага, че сте запознати с езика за програмиране VBA и с инструменти, които се използват за създаване и за отстраняване на грешки процедури. Инженерни за поддръжка на Microsoft могат да ви помогнат с обяснение на функциите на конкретна процедура. Те няма да модифицират тези примери за предоставяне на допълнителна функционалност, или изграждане на процедури, за да отговарят на вашите конкретни изисквания.

Създаване на функцията SpellNumber за преобразуване на числа в думи

  1. Използвайте клавишната комбинация, Alt + F11 , за да отворите редактора на Visual Basic (VBE).

    Забележка: Можете да отворите редактора на Visual Basic също и като покажете раздела "Разработчик" на лентата.

  2. Щракнете върху раздела Вмъкване и след това върху Модул.

    В менюто "Insert" (Вмъкване) щракнете върху "Module" (Модул).
  3. Копирайте следните редове код.

    Забележка: Известен като Дефинирани от потребителя функция (UDF), този код автоматизира задачата за преобразуване на числа в текст в работния лист.

    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
  4. Поставете редовете код в полето Module1 (Code).

    Код, поставен в полето Module1 (Code).
  5. Натиснете Alt + Q да се върнете към Excel. Функцията SpellNumber сега е готов за използване.

    Забележка: Тази функция работи само за текущата работна книга. За да използвате тази функция в друга работна книга, трябва да повторите стъпки, за да копирате и поставите кода в тази работна книга.

Най-горе на страницата

Използване на функцията SpellNumber в отделни клетки

  1. Въведете формулата = SpellNumber(A1) в клетката, където искате да покажете написани число, където A1 е клетката, съдържаща число, който искате да конвертирате. Можете също ръчно да въведете стойността като = SpellNumber(22.50).

  2. Натиснете клавиша Enter, за да потвърдите формулата.

Най-горе на страницата

Записване на функцията SpellNumber в работната книга

Excel не може да запишете работна книга с функции на макроси в стандартната книга без макроси формат (.xlsx). Ако щракнете върху файл > Запиши. Отваря се диалоговият прозорец проект . Щракнете върху не.

В диалоговия прозорец на VB Project щракнете върху "No" (Не).

Можете да запишете файла си като Работна книга на Excel с разрешени макроси (.xlsm) за да запазите вашия файл в текущия му формат.

  1. Щракнете върху Файл > Запиши като.

  2. Щракнете върху Запиши като тип падащото меню и изберете Работна книга на Excel с разрешени макроси.

  3. Щракнете върху Запиши.

Най-горе на страницата

Вж. също

TEXT функция

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×