Spellnumber функции (numberRange как ряд)
Если numberRange = "" после этого
spellnumber = ""
Еще
spellnumber = Currency2Words (numberRange, «фунты», «пенниа»)
Закончитесь если
Закончите функцию
Функция Currency2Words (ByVal MyNumber, опционные strUnits, опционное strFrac)
Тусклый Temp
Тусклые блоки
Тусклое Frac
Тусклое DecimalPlace
Затемните отсчет
Если strUnits IsMissing (strUnits) после этого = «доллары», то
Если strFrac IsMissing (strFrac) после этого = «центы», то
Место ReDim (9) как шнур
Установьте (2) = «тысяча»
Установьте (3) = «миллион»
Установьте (4) = «миллиард»
Установьте (5) = «триллион»
MyNumber = уравновешивание (str (MyNumber))
DecimalPlace = InStr (MyNumber, «.")
Если DecimalPlace > 0 после этого
Temp = вышел (средний (MyNumber, DecimalPlace + 1) & «00», 2)
Frac = ConvertTens (Temp)
MyNumber = уравновешивание (левое (MyNumber, DecimalPlace - 1))
Закончитесь если
Отсчет = 1
Сделайте пока "" <> MyNumber
Temp = ConvertHundreds (правое (MyNumber, 3))
Если блоки <> = Temp & место (отсчет) & блоки "" Temp после этого
Если Len (MyNumber) > 3 после этого
MyNumber = о (MyNumber, Len (MyNumber) - 3)
Еще
MyNumber = ""
Закончитесь если
Отсчет = отсчет + 1
Петля
Блоки = уравновешивание (блоки) & ««
Выберите уравновешивание случая (блоки)
Покрывайте ""
Блоки = "" '«не» & strUnits
Случай «одно»
Блоки = «одно» & вышли (strUnits, Len (strUnits) - 1)
Случай еще
Блоки = блоки & strUnits
Конец отборный
Выберите уравновешивание случая (Frac)
Покрывайте ""
Frac = "" '«и не» & strFrac
Случай «одно»
Если блоки = "" после этого
Frac = Frac & ««& strFrac
Еще
Frac = «и одно» & вышли (strFrac, Len (strFrac) - 1)
Закончитесь если
Покрывайте еще
Если блоки = "" после этого
Frac = Frac & ««& strFrac
Еще
Frac = «и» & Frac & ««& strFrac
Закончитесь если
Закончите отборное
Если блоки = "" после этого
Currency2Words = Frac
Еще
Currency2Words = блоки & Frac
Закончитесь если
Currency2Words = заменяют ть (уравновешивание (Currency2Words), « «,» ")
Функция конца
Приватная функция ConvertHundreds (ByVal MyNumber)
Тусклый результат как шнур
Если Val (MyNumber) = 0 после этого выходит функция
MyNumber = право («000» & MyNumber, 3)
'Сотниы
Если о, то (MyNumber, 1) <> «0» после этого
Результат = ое ConvertDigit ((MyNumber, 1)) & «100»
Закончитесь если
'10
Если средний, то (MyNumber, 2, 1) <> «0» после этого
Результат = результат & ConvertTens (средние (MyNumber, 2))
Еще
Результат = результат & ConvertDigit (средние (MyNumber, 3))
Закончитесь если
ConvertHundreds = уравновешивание (результат)
Функция конца
Приватная функция ConvertTens (ByVal MyTens)
Тусклый результат как шнур
'Значение между 10 и 19?
Если Val, то (ое (MyTens, 1)) = 1 после этого
Выберите случай Val (MyTens)
Случай 10: Результат = «10»
Случай 11: Результат = «11»
Случай 12: Результат = «12»
Случай 13: Результат = «13»
Случай 14: Результат = «14»
Случай 15: Результат = «15»
Случай 16: Результат = «16»
Случай 17: Результат = «17»
Случай 18: Результат = «18»
Случай 19: Результат = «19»
Случай еще
Конец отборный
Еще
'. в противном случае он находится между 20 и 99.
Выберите случай Val (вышл (MyTens, 1))
Случай 2: Результат = «20»
Случай 3: Результат = «30»
Случай 4: Результат = «40»
Случай 5: Результат = «50»
Случай 6: Результат = «60»
Случай 7: Результат = «70»
Случай 8: Результат = «80»
Случай 9: Результат = «90»
Случай еще
Конец отборный
'Новообращенный одни устанавливает число.
Результат = результат & ConvertDigit (правые (MyTens, 1))
Закончитесь если
ConvertTens = результат
Функция конца
Приватная функция ConvertDigit (ByVal MyDigit)
Выберите случай Val (MyDigit)
Случай 1: ConvertDigit = «одно»
Случай 2: ConvertDigit = «2»
Случай 3: ConvertDigit = «3»
Случай 4: ConvertDigit = «4»
Случай 5: ConvertDigit = «5»
Случай 6: ConvertDigit = «6»
Случай 7: ConvertDigit = «7»
Случай 8: ConvertDigit = «8»
Случай 9: ConvertDigit = «9»
Случай еще: ConvertDigit = ""
Конец отборный
Функция конца
|