Excel очень крут / Хабр
Статья Хилла Уейна, автора почтовой рассылки «Компьютерные штучки», которая посвящена формальным методам и применению математики в программировании, истории и культуре программного обеспечения, философии и теории программирования, а также всяким экзотическим штукам и нишевым темам. В общем, рекомендуем.
В прошлом выпуске рассылки Уейн игрался с языком программирования J, который работает как арифметический калькулятор в консоли, и пошутил по ходу дела:
Я столько времени трачу на интерактивные вычисления, что даже не мог оторваться от этих функций… Может, мне просто хорошенько освоить Excel?
Пошутив про офисную программу, Хилл Уейн решил действительно посмотреть на неё поближе… и был поражён увиденным: «Это как найти сундук с сокровищами у себя на чердаке», — пишет он. И перечисляет некоторые новые функции современного Excel, о которых мало кто знает.
Вот кое-что из интересного.
В Excel теперь реальные возможности для программирования
Начнём с самой полезной функции, о которой, похоже, никто не знает. Вместо того чтобы повсюду использовать названия ячеек и диапазонов типа A15 и B1:D94, вы можете… дать им нормальные имена. Или пропустить хранение информации в ячейке — и просто напрямую присвоить значение. Почти как в настоящем языке программирования!
Определены три имени, одно — фиксированное значение, другое — фиксированный массив, третье — ссылка на ячейку
Обычно об этом не принято распространяться, но такой метод устраняет одну из главных проблем нечитаемости формул. Вместо формулы =A1*B1 можно написать =Ширина*Высота, как это делали деды.
О, и можете составлять кастомные формулы на свой вкус.
Это не шутка. В 2020 году Microsoft добавила в Excel функции LET и LAMBDA.
MAXEXP, то можно использовать MAXEXP в качестве обычной встроенной формулы. LET позволяет связывать в середине формулы новые имена, которые также могут ссылаться на предыдущие связывания. Очень простой пример: LET(x, 1, y, x+1, z, y+x) выдаёт 3. Примерно так же с LET работают все языки программирования. Конечно, синтаксис здесь немного странный, если вы не фанат S-выражений (sexp), но всё же. Полезная штука.Заливка!
Предположим, у нас такая табличка.
Последний столбец — сложное преобразование текста
Нажимаем Ctrl+E:
Теперь в последних двух строках столбец заполнен по тому же образцу
Разве не здорово?!
Источники данных
Очень порадовала кнопка «Импорт из интернета»:
Она делает почти то, что вы ожидаете: вводите URL страницы — и оттуда HTML-таблица преобразуется в таблицу Excel.
Но есть нюанс (вот почему «почти»). Значения из интернета не просто копируются на лист. Excel сохраняет «запрос данных» по URL. Если изменить таблицу до неузнаваемости, то можно обновить запрос — и немедленно восстановить исходную таблицу вместе с любыми обновлениями из источника. То есть мы можем просто периодически (или автоматически) обновлять значения, которые подгружаются из интернета.
Это можно сделать практически с любым источником данных, включая XML, JSON и даже таблицы в PDF. В качестве эксперимента я импортировал в Excel старую налоговую декларацию в PDF — и он извлёк нужные данные.
Но прежде чем импортировать данные, можно изменить их на лету с помощью Power Query. Отфильтровать строки, заполнить пустые ячейки, разделить столбец по разделителю, выполнить базовую очистку данных. Все изменения моделируются как последовательность шагов преобразования. Это означает, что если обновить запрос, то все первоначальные преобразования применятся заново.
Очищаем CSV от плохих данных с помощью воспроизводимых шагов
Я уже говорил, что можно переименовать и комментировать каждый шаг? Если это недостаточно круто, как вам такое — можно форкнуть любой запрос, чтобы у разных запросов были общие начальные шаги! Например, вытянуть из интернета кучу данных, очистить их — а затем разложить на отдельные таблицы 2021 и 2022. Затем, если требуется дополнительная очистка, то применяем её к форкнутому префиксу — и обе таблицы на выходе автоматически обновятся.
Excel — это по сути APL
Наверное, для меня это самое странное. В Excel есть своеобразные «транзитные» массивы: формула в одной ячейке выводит массив значений, которые транзитом переходят в другие ячейки. Например, у нас такая таблица:
A B 1 2 3 4 5 6
Затем пишем в C1 формулу =A1:A3 + B1:B3 — и получаем C1=3, C2=7, C3=11.
2, то это применится к транзитному массивуC1 — и теперь у нас будет D1=9, D2=49, D3=121.
А если написать C1 = A1:A3 + TRANPOSE(B1:B3), то получится следующее:
C D E 3 5 7 5 7 9 7 9 11
Это открывает некоторые забавные возможности в стиле APL. Недавно у меня была такая таблица данных:
A B 12 15 x
В этом случае значение в столбце B показывает на нечётные значения, которые не делятся на два. Я хотел вычислить сумму всех значений после деления на два. «Правильный» способ будет такой:
=SUM(A:A*IF(ISBLANK(B:B), 1, 0.5))
Но можно сделать и в стиле APL, например, так:
SUM(A:A*(1-0.5*(B:B="x")))
В инсайдерской сборке есть несколько формул, которые ещё больше превращают Excel в нечто APL-подобное.
А вот игра «Жизнь» в Excel:
LET(x, SUM(OFFSET(cell#,-1,-1,3,3)), (x=3)+cell#*(x=4))
Разные крутости
- Excel поставляется с решателем для логического программирования с учётом ограничений (constraint solver).
Можно включить его в дополнениях программы (аддонах). - Можно напрямую перемещать или копировать листы между разными файлами Excel.
- С помощью связанных типов данных можно вставить в ячейку позу йоги — и Excel скажет, насколько она сложная.
- Есть кнопка для создания 3D-глобусных карт по вашим данным. Видимо, по ним можно водить экскурсии, хотя я не пробовал (и вряд ли попробую).
- Есть кнопка, которая преобразует выборку данных в изображение.
В целом я рад, что потратил время на изучение Excel, потому что это очень интересный инструмент, который может оказаться полезным для меня. Даже удивительно, насколько он круче Google Sheets. Все обзоры в интернете говорят, что они примерно равны, но в Sheets даже нет приличных таблиц, не говоря уже о лямбдах или кнопке «Принять позу йоги» (здесь в словах автора чувствуется некая ирония — прим. пер.). Но зато Google Sheets бесплатный.
Вряд ли большинство пользователей, или даже «опытных пользователей», используют эти функции. То же самое верно и для разработчиков, большинство из которых на самом деле не используют все возможности своих редакторов. Однако такие штуки интересно исследовать!
В любом случае, любопытно познакомиться с этим инструментом, если вы или ваша компания оплатила подписку на Office 365.
Excel не пишет в ячейке почему не вводятся цифры в таблице
Не будет ли Excel писать в ячейку? Снимите защиту листа, убедитесь, что данные введены правильно, включите прямую запись или отключите выполнение макроса. Также проверьте цвет шрифта и отключите Num Lock при наборе чисел. Ниже мы подробно рассмотрим, в чем могут быть причины такой неисправности и как исправить самостоятельно.
Причины, почему Excel не пишет
Для начала нужно понять, почему это не написано в Excel и в чем может быть причина такой проблемы. Условно выделено несколько причин:
- лист защищен, из-за чего в ячейке Excel ничего не пишется;
- установлена валидация данных;
- прямой вход запрещен;
- есть код, запрещающий модификацию;
- blockNum нажат;
- установите белый шрифт и так далее
Выше приведены основные причины, по которым Excel не пишет, что позволяет нам сделать вывод о дальнейших действиях по решению проблемы.
Существует несколько шагов, описанных для того, чтобы вернуть Excel к работе. Многое зависит от проблемы.
Уберите защиту листа
Наиболее частым объяснением того, почему он не записывается в Excel, является защита листа. При попытке внести изменения в ячейку программа сообщает пользователю, что это невозможно. В сообщении указывается факт защиты от изменений, а также рекомендации по удалению опции. Если при попытке регистрации ничего не написано, действуйте следующим образом:
- Перейдите в раздел «Обзор».
- Нажмите «Снять защиту с листа».
Для снятия защиты может потребоваться пароль, потому что, если у вас его нет, могут возникнуть трудности.
Уберите проверку данных
Еще одно объяснение того, почему он вдруг ничего не пишет в Excel, — это установка в программе проверки данных. Возможности программного обеспечения позволяют включить эту опцию. Если он активен, вы сможете редактировать информацию, но не сможете вводить новую информацию с помощью кнопки «Enter».
Чтобы обойти такую ошибку, вам нужно ввести правильный параметр, удалить проверку информации или скопировать другую ячейку и скопировать ее в ту, в которую вы не пишете. Самый правильный шаг — ввести правильный параметр, потому что при наличии контроля в Excel работают специальные алгоритмы, которые при несоблюдении правила ввода данных будут выполнять функции некорректно.
Чтобы отключить аудит, сделайте следующее:
- Выделите нужные ячейки.
- Зайдите в раздел «Данные».
- Введите «Проверка данных».
- В поле «Тип…» установите «Любое значение».
- Подтвердите действие.
Проверьте возможность ввода сведений напрямую
Самая редкая причина — это когда цифры / буквы не вводятся в Excel из-за запрета на изменение. В этом случае напрямую внести изменения не удастся, но через строку это действие можно полностью реализовать без каких-либо ограничений.
Чтобы решить проблему с Excel, вам необходимо проверить ряд настроек. При этом подходы различаются в зависимости от версии программы, поэтому мы рассмотрим несколько вариантов.
В Excel 2003 сделайте следующее:
- Зайдите в «Сервис» и «Опции».
- Перейдите в категорию «Редактировать».
- Установите флажок «Редактировать прямо в ячейке».
Если у вас есть Excel 2007, выполните следующие действия:
- Нажмите кнопку «Офис».
- Перейдите в «Параметры Excel».
- Войдите в категорию «Дополнительно».
- Установите флажок «Разрешить редактирование в ячейках».
Если вы используете версию 2010 года, выполните следующие действия:
- Перейдите в «Файл», а затем в «Параметры».
- Щелкните «Дополнительно».
- Установите флажок «Разрешить редактирование в …».
Затем проверьте, пишет ли что-то Excel или нет.
Запретите выполнение макросов
Следующая причина, по которой Excel не выполняет запись в ячейку, — это наличие в файле кода, запрещающего модификацию / модификацию информации в ячейках.
Обычно эти коды позволяют вводить информацию в ячейки, но после нажатия «Enter» они возвращают предыдущую запись. При этом может появиться сообщение с информацией о запрете ввода этих данных. Код находится в модуле листа и может быть разным по внешнему виду. Он должен содержать запись о том, что запрещено изменять информацию в ячейках Excel на этом листе.
Если программа не выполняет запись по этой причине, чтобы обойти защиту, отключите выполнение макроса и снова запустите файл. Или перейдите в модуль рабочего листа и избавьтесь от всех кодов. Чтобы запретить выполнение макросов, нужно получить доступ к настройкам, а сама процедура зависит от версии программы.
Для Excel 2003 сделайте следующее:
- Войдите в «Сервис», затем «Безопасность».
- В разделе «Макрос высокого уровня» внесите изменения.
В 2007 г действуйте следующим образом:
- Нажмите кнопку «Офис».
- Перейти в Центр управления безопасностью».
- Щелкните Параметры центра управления безопасностью».

- Войдите в «Параметры макроса».
- Нажмите «Отключить все макросы без уведомления».
В Excel 2010 и более поздних версиях выполните следующие действия:
- Щелкните «Файл и параметры».
- Доступ к Центру управления безопасностью».
- Щелкните «Настройки центра управления безопасностью».
- Перейдите к параметрам макроса».
- Выберите Отключить все макросы без уведомления».
После внесения параметров перезапустите Excel и проверьте, пишет ли он что-нибудь в ячейке или нет. Как только изменения вступят в силу, все должно быть в порядке.
Проверьте факт включения NumLock
В ситуации, когда числа не вводятся в Excel, причиной может быть включение NumLock, который передает управление дополнительному полю. Чтобы решить проблему, просто нажмите кнопку еще раз.
Гляньте на цвет шрифта
Некоторые пользователи жалуются, что Excel не пишет в ячейку. На самом деле все нормально, но текст / цифры не видны из-за светлого цвета шрифта.
Он может сливаться с фоном, создавая впечатление, что на поле нет ничего. Чтобы исправить это, просто измените цвет на черный.
Зная, почему Excel не пишет в ячейку и как исправить ситуацию, вы можете быстро перезагрузить программу для работы. Расскажите в комментариях, какие еще решения могут быть эффективными.
Преобразование чисел в слова — служба поддержки Майкрософт
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, открыв вкладку «Разработчик» на ленте.
Нажмите на вставку и нажмите 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»>Нажмите Alt + Q , чтобы вернуться в Excel. Теперь функция SpellNumber готова к использованию.
Примечание. Эта функция работает только для текущей книги. Чтобы использовать эту функцию в другой книге, необходимо повторить шаги по копированию и вставке кода в эту книгу.
Вставьте строки кода в поле Module1 (Code) .
Верх страницы
Использовать функцию SpellNumber в отдельных ячейках
Введите формулу =SpellNumber ( A1 ) в ячейку, где вы хотите отобразить записанное число, где A1 — это ячейка, содержащая число, которое вы хотите преобразовать.
Вы также можете ввести значение вручную, например =SpellNumber(22.50).Нажмите Введите для подтверждения формулы.
Верх страницы
Сохраните книгу функций SpellNumber
Excel не может сохранить книгу с функциями макросов в стандартном формате книги без макросов (.xlsx). Если вы нажмете Файл > Сохранить . А Откроется диалоговое окно проекта VB . Щелкните Нет .
Вы можете сохранить файл как книгу Excel с поддержкой макросов (.xlsm) , чтобы сохранить файл в его текущем формате.
Щелкните Файл > Сохранить как .

Щелкните раскрывающееся меню Сохранить как тип и выберите Книга Excel с поддержкой макросов .
Щелкните Сохранить .
Верх страницы
См. также
Функция ТЕКСТ
Excel: Проверка орфографии
5c096a7d77c050035472858c 5c0981d177c05003547285a3
Урок 11. Проверка орфографии
/en/excel/using-find-replace/content/
Введение
Перед тем, как поделиться книгой, убедитесь, что в ней нет орфографических ошибок.
К счастью, в Excel есть средство проверки правописания , которое можно использовать, чтобы убедиться, что все в вашей книге написано правильно.
Если вы использовали функцию проверки орфографии в Microsoft Word, имейте в виду, что средство проверки орфографии в Excel, хотя и полезное, не такое мощное. Например, он не будет проверять грамматические ошибки или проверять орфографию во время ввода.
Дополнительно: загрузите нашу рабочую тетрадь.
Чтобы использовать проверку орфографии:
- На вкладке Обзор щелкните команду Орфография .
- Появится диалоговое окно Правописание . Для каждой орфографической ошибки в вашем листе он попытается предложить 90 152 предложения 90 153 для правильного написания. Выберите предложение, затем нажмите Изменить , чтобы исправить ошибку.
- После проверки всех орфографических ошибок появится диалоговое окно. Нажмите OK , чтобы закрыть проверку орфографии.

Если нет подходящих предложений, вы также можете ввести правильное написание вручную.
Игнорирование орфографических ошибок
Проверка правописания не всегда верна . Иногда некоторые слова помечаются как неправильные, даже если они написаны правильно. Это часто происходит с именами, которых может не быть в словаре. Вы можете выбрать вместо , чтобы изменить орфографическую ошибку, используя один из следующих трех вариантов:
- Игнорировать один раз : Слово будет пропущено без его изменения.
- Игнорировать все : слово будет пропущено без его изменения, а также пропущены все остальные экземпляры слова на листе.
- Добавить : Это добавляет слово в словарь, чтобы оно больше никогда не отображалось как ошибка. Убедитесь, что слово написано правильно, прежде чем выбрать этот вариант.
Вызов!
- Откройте нашу рабочую тетрадь.

Можно включить его в дополнениях программы (аддонах).

МойЧисло = Обрезать(Стр(МойЧисло))
' Позиция десятичного знака 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 = ""
Конец выбора
Завершить функцию
Вы также можете ввести значение вручную, например =SpellNumber(22.50).
