Преобразование чисел в слова — служба поддержки Майкрософт
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Дополнительно…Меньше
Excel не имеет функции по умолчанию, которая отображает числа в виде английских слов на листе, но вы можете добавить эту возможность, вставив следующий код функции SpellNumber в модуль VBA (Visual Basic для приложений). Эта функция позволяет конвертировать суммы в долларах и центах в слова с помощью формулы, поэтому 22,50 будет читаться как двадцать два доллара и пятьдесят центов. Это может быть очень полезно, если вы используете Excel в качестве шаблона для печати чеков.
Если вы хотите преобразовать числовые значения в текстовый формат, не отображая их в виде слов, используйте вместо этого функцию ТЕКСТ.
Примечание. Microsoft предоставляет примеры программирования только для иллюстрации, без явных или подразумеваемых гарантий. Это включает, но не ограничивается, подразумеваемые гарантии товарного состояния или пригодности для конкретной цели.
В этой статье предполагается, что вы знакомы с языком программирования VBA и инструментами, которые используются для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональность той или иной процедуры. Однако они не будут изменять эти примеры, чтобы обеспечить дополнительную функциональность или создавать процедуры для удовлетворения ваших конкретных требований.
Создайте функцию SpellNumber для преобразования чисел в слова
Используйте сочетание клавиш Alt + F11 , чтобы открыть редактор Visual Basic (VBE).
Примечание. Вы также можете получить доступ к редактору Visual Basic, открыв вкладку «Разработчик» на ленте.
org/ListItem»>
Нажмите на вставку и нажмите Module .
Скопируйте следующие строки кода.
Примечание. Этот код, известный как определяемая пользователем функция (UDF), автоматизирует задачу преобразования чисел в текст на вашем листе.
Опция явная
'Основная функция
Функция SpellNumber(ByVal MyNumber)
Дим-доллары, центы, темп.
Dim DecimalPlace, граф
РеДим Плейс(9) Как строка
Место(2) = "Тысяча"
Место (3) = "Миллион"
Место (4) = "Миллиард"
Место (5) = "Триллион"
' Строковое представление суммы.
МойЧисло = Обрезать(Стр(МойЧисло))
' Позиция десятичного знака 0, если нет.
DecimalPlace = InStr(MyNumber, ".")
' Преобразуйте центы и установите MyNumber в сумму в долларах.
Если Десятичный Разряд > 0 Тогда
Cents = GetTens (Left (Mid (MyNumber, DecimalPlace + 1) & _ "00", 2))
MyNumber = Trim (Left (MyNumber, DecimalPlace - 1))
Конец, если
Количество = 1
Делать пока MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
Если Лен(МойЧисло) > 3 Тогда
МойЧисло = Слева(МойЧисло, Лен(МойЧисло) - 3)
Еще
МойНомер = ""
Конец, если
Счет = Счет + 1
Петля
Выберите Доллары Кейса
Случай ""
Доллары = "Нет долларов"
Дело «Один»
Доллары = "Один доллар"
Дело еще
Доллары = Доллары и "доллары"
Конец выбора
Выберите центы дела
Случай ""
Центы = "и без центов"
Дело «Один»
Центы = "и один цент"
Дело еще
Центы = " и " & Центы & " Центы"
Конец выбора
SpellNumber = доллары и центы
Конечная функция
' Преобразует число от 100 до 999 в текст
Функция GetHundreds(ByVal MyNumber)
Затемнить результат как строку
Если Val(MyNumber) = 0, то выход из функции
МойЧисло = Правильно ("000" & МойЧисло, 3)
' Преобразование разряда сотен. Если Середина(МойЧисло, 1, 1) <> "0" Тогда
Результат = GetDigit(Mid(MyNumber, 1, 1)) & "Сотня"
Конец, если
' Преобразование разряда десятков и единиц.
Если Середина(МойЧисло, 2, 1) <> "0" Тогда
Результат = Результат и GetTens (Mid (MyNumber, 2))
Еще
Результат = Результат и GetDigit (Mid (MyNumber, 3))
Конец, если
ПолучитьСотни = Результат
Конечная функция
' Преобразует число от 10 до 99 в текст.
Функция GetTens(TensText)
Затемнить результат как строку
Result = "" ' Обнуление временного значения функции.
If Val(Left(TensText, 1)) = 1 Then ' Если значение между 10-19...
Выберите Case Val (TensText)
Случай 10: Результат = "Десять"
Случай 11: Результат = "Одиннадцать"
Случай 12: Результат = "Двенадцать"
Случай 13: Результат = "Тринадцать"
Случай 14: Результат = "Четырнадцать"
Случай 15: Результат = "Пятнадцать"
Случай 16: Результат = "Шестнадцать"
Случай 17: Результат = "Семнадцать"
Случай 18: Результат = "Восемнадцать"
Случай 19: Результат = "Девятнадцать"
Дело еще
Конец выбора
Else ' Если значение от 20 до 99.
..
Выберите Case Val(Left(TensText, 1))
Случай 2: Результат = "Двадцать"
Случай 3: Результат = "Тридцать"
Случай 4: Результат = "сорок"
Случай 5: Результат = "Пятьдесят"
Случай 6: Результат = "Шестьдесят"
Случай 7: Результат = "Семьдесят"
Случай 8: Результат = "Восемьдесят"
Случай 9: Результат = "Девяносто"
Дело еще
Конец выбора
Результат = Результат и GetDigit _
(Right(TensText, 1)) ' Получить разряд единиц.
Конец, если
ПолучитьДесятки = Результат
Конечная функция
' Преобразует число от 1 до 9в текст.
Функция GetDigit(Цифра)
Выберите регистр Val (цифра)
Случай 1: GetDigit = "Один"
Случай 2: GetDigit = "Два"
Случай 3: GetDigit = "Три"
Случай 4: GetDigit = "Четыре"
Случай 5: GetDigit = "Пять"
Случай 6: GetDigit = "Шесть"
Случай 7: GetDigit = "Семь"
Случай 8: GetDigit = "Восемь"
Случай 9: GetDigit = "Девять"
Другое дело: GetDigit = ""
Конец выбора
Завершить функцию
org/ListItem»>
Вставьте строки кода в поле Module1 (Code) .
Нажмите Alt + Q , чтобы вернуться в Excel. Теперь функция SpellNumber готова к использованию.
Примечание. Эта функция работает только для текущей книги. Чтобы использовать эту функцию в другой книге, необходимо повторить шаги по копированию и вставке кода в эту книгу.
Верх страницы
Использовать функцию SpellNumber в отдельных ячейках
Введите формулу =SpellNumber ( A1 ) в ячейку, где вы хотите отобразить записанное число, где A1 — это ячейка, содержащая число, которое вы хотите преобразовать. Вы также можете ввести значение вручную, например =SpellNumber(22.50).
Нажмите Введите для подтверждения формулы.
Верх страницы
Сохраните книгу функций SpellNumber
Excel не может сохранить книгу с функциями макросов в стандартном формате книги без макросов (.xlsx). Если вы нажмете Файл > Сохранить . А Откроется диалоговое окно проекта VB . Щелкните Нет .
Вы можете сохранить файл как книгу Excel с поддержкой макросов (.xlsm) , чтобы сохранить файл в его текущем формате.