Вставка и запуск макросов VBA в Excel



дада говорит:
8 ноября 2019 г., 5:43

Функция SpellCurr(ByVal MyNumber, _
Необязательный MyCurrency As String = «Rupee», _
Необязательный MyCurrencyPlace As String = «P», _
Необязательный MyCurrencyDecimals As String = «Paisa», _
Необязательный MyCurrencyDecimalsPlace As String = «S»)

‘****************************************************** ******************************************************* ****************
‘* На основе пользовательской функции SpellNumbers от Microsoft, которая обрабатывает только доллары в качестве валюты *
‘* UDF изменен Йогешем Гуптой, smiley123z@gmail.com, Ygblogs.blogspot.com, 21 июля 2009 г. *
‘* UDF изменен 04 сентября 2009 г., чтобы сделать ввод валюты необязательным, по умолчанию он будет использовать индийскую валюту *
‘* Этот модифицированный UDF можно использовать для любой валюты, если вы предоставляете валютные входы *
‘* Пользователь может определить место префикса и суфикса для валюты и валютыDecimals *
‘* MyNumber = числовое значение, которое необходимо преобразовать в слова *
‘* MyCurrency = Название вашей валюты — т.е. доллар для США *
‘* MyCurrencyPlace = префикс или суффикс валюты, используйте «P» для префикса и «S» для суффикса *
‘* MyCurrencyDecimals = Название ваших десятичных знаков валюты — т.е. цент для США *
‘* MyCurrencyDecimalsPlace = префикс или суффикс десятичных знаков валюты, используйте «P» для префикса и «S» для суффикса *
‘****************************************************** ******************************************************* ****************

Дим рупии, пайса, темп
Dim DecimalPlace, граф

ReDim Place(9) как строка
Место(2) = «Тысяча»
Место (3) = «Миллион»
Место (4) = «Миллиард»
Место (5) = «Триллион»

‘Строковое представление суммы.
МойЧисло = Обрезать(Стр(МойЧисло))

‘Позиция десятичного знака 0, если нет.
DecimalPlace = InStr(MyNumber, «.»)

‘ Преобразуйте пайсу и установите для MyNumber значение суммы в рупиях.
Если Десятичный Разряд > 0 Тогда
Деньги = GetTens (Left (Mid (MyNumber, DecimalPlace + 1) & _
«00», 2))
MyNumber = Trim (Left (MyNumber, DecimalPlace — 1))
Конец, если

Количество = 1

Делать, пока мой номер «»
Temp = GetHundreds(Right(MyNumber, 3))
Если температура «», то рупии = температура и место (количество) и рупии
Если Лен(МойЧисло) > 3 Тогда
МойЧисло = Слева(МойЧисло, Лен(МойЧисло) — 3)
Еще
МойНомер = «»
Конец, если
Счет = Счет + 1

Петля

Если MyCurrencyPlace = «P» Тогда
Выберите кейс рупий
Кейс «»
Рупии = MyCurrency & «s» & «Zero»
Дело «Один»
Рупии = MyCurrency & «One»
Дело еще
Рупии = MyCurrency & «s» & Rupees
Конец выбора
Еще
Выберите кейс рупий
Кейс «»
Рупии = «Ноль» & MyCurrency & «s»
Дело «Один»
Рупии = «Один» и MyCurrency
Дело еще
Рупии = рупии & » » & MyCurrency & «s»
Конец выбора
Конец, если

Если MyCurrencyDecimalsPlace = «S» Тогда
Выберите Дело Пайса
Кейс «»
Пайса = «Только»
Дело «Один»
Пайса = «и Один» & MyCurrencyDecimals & «Только»
Дело еще
Paisa = » and » & Paisa & » » & MyCurrencyDecimals & «s Only»
Конец выбора
Еще
Выберите Дело Пайса
Кейс «»
Пайса = «Только»
Дело «Один»
Пайса = «и» & MyCurrencyDecimals & «Один» и «Только»
Дело еще
Пайса = «и» & MyCurrencyDecimals & «s» & Пайса & «Только»
Конец выбора
Конец, если

SpellCurr = рупии и пайса

Конечная функция

‘************************************************
‘ Преобразует число от 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 = «»
Конец выбора
Конечная функция

Отвечать

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *