Перетворення числа на слова

Примітка.: Ми хочемо надавати найновіший вміст довідки рідною мовою користувачів якомога швидше. Цю сторінку перекладено за допомогою засобу автоматичного перекладу, тому вона може містити смислові, синтаксичні або граматичні помилки. Ми вважаємо, що цей вміст стане вам у пригоді. Повідомте нас, чи була інформація корисною, унизу цієї сторінки. Для зручності цю статтю можна переглянути англійською мовою.

Програмі Excel немає функції за промовчанням, яка відображає числа у вигляді англійських слів на аркуші, але ви можете додати цю можливість, вставивши такі функції SpellNumber код у модулі VBA (Visual Basic for Applications). Ця функція дає змогу перетворити долар та відсотка обсяги слова з формулою, 22,50 б читати як двадцяти двох гривень п'ятдесят копійок. Це може бути дуже корисний, якщо ви використовуєте Excel як шаблон, щоб надрукувати перевірки.

Якщо ви хочете перетворення числових значень на текст без відображення їх як слова, використовуйте функції TEXT .

Примітка.: Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації без гарантії, виражений або мається на увазі. Це включає в себе, але не обмежено до, гарантій придатності або для певних цілей. У цій статті припускається, що ви знайомі з мова програмування VBA і інструменти, які використовуються для створення та налагодження процедур. Співробітники служби підтримки Microsoft можна пояснити можливості певної дії. Проте, вони не змінювати ці приклади для надання доданий функціональні можливості, або побудувати дій, щоб задовольнити вимоги.

Створення SpellNumber функції для перетворення числа на слова

  1. За допомогою сполучення клавіш Alt + F11 , щоб відкрити редактор Visual Basic (VBE).

    Примітка.: Можна також відкрити редактор Visual Basic, відображаючи вкладки Розробник» на стрічці.

  2. Перейдіть на вкладку Вставлення та натисніть кнопку модуль.

    У меню вставлення натисніть кнопку модуль.
  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. Вставте рядки коду до на модулі1 (код) поля.

    Код вставили в модулі1 поле (код).
  5. Натисніть сполучення клавіш Alt + Q повернутися до програми Excel. Функція SpellNumber готовий до використання.

    Примітка.: Ця функція працює лише на поточній книзі. Щоб використовувати цю функцію в іншій книзі, необхідно повторіть кроки, щоб скопіюйте та вставте цей код у книзі.

На початок сторінки

Використовуйте функцію SpellNumber в окремих клітинках

  1. Введіть у формулу = SpellNumber(A1) у клітинку, де потрібно відобразити написаний номер, де A1 – на клітинку, яка містить число потрібно перетворити. Можна також вручну ввести значення як = SpellNumber(22.50).

  2. Натисніть клавішу Enter , щоб підтвердити формулу.

На початок сторінки

Збереження книги SpellNumber функції

Excel не можна зберегти книги з функціями макрос у форматі стандартний книзі макросів (. XLSX). Якщо клацнути елементи файл > зберегти. Відкриється діалогове вікно проект Visual Basic . Натисніть кнопку ні.

У діалоговому вікні проекту б. натисніть кнопку ні.

Ви можете зберегти файл у форматі Книгу Excel із підтримкою макросів (. xlsm) щоб зберегти файл у поточному форматі.

  1. Відкрийте меню Файл і виберіть команду Зберегти як.

  2. Натисніть кнопку Зберегти як тип розкривного меню та виберіть пункт Книга Excel із підтримкою макросів.

  3. Виберіть команду Зберегти.

На початок сторінки

Див. також

Функція TEXT

Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×