Вставка и запуск макросов 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 не будет опубликован. Обязательные поля помечены *