Сума курсивом

Содержание:

Ниже вы найдете готовую пользовательскую функцию на VBA, которая переводит любое число от 0 в 9 в его текстовом представлении, т.е. в сумме, выраженной словами. Перед использованием эту функцию необходимо добавить в вашу книгу. Для этого:

  1. нажмите сочетание клавиш ALT + F11чтобы открыть редактор Visual Basic
  2. добавить новый пустой модуль через меню Вставка – Модуль
  3. скопируйте и вставьте туда текст этой функции:
Функция SUM(n как двойное число) Как строка Dim Nums1, Nums2, Nums3, Nums4 Как вариант Nums1 = Array("", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять") Nums2 = Array("", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", _ "восемьдесят" ", "девяносто") Nums3 = Array("", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", _ " восемьсот", "девятьсот") Nums4 = Array("", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять" ") Nums5 = Array("десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", _ "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать") Если n < = 0 Тогда SUMWRITE = "ноль" Выход из функции End If 'разделим число на цифры с помощью вспомогательной функции Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class (n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'проверить миллионы Выберите регистр decmil Case 1 mil_txt = Nums5(mil) ) & "millions" Перейти к www Case 2 To 9 decmil_txt = Nums2(decmil) Конец выбора Выбор Case mil Case 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "million" Case 5 To 20 mil_txt = Nums1(mil) & "millions" Конец Выберите www: sottys_txt = Nums3(sottys) ' проверьте тысячи Выберите Case dectys Case 1 tys_txt = Nums5(tys) & "thousands" Перейти к eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 Если dectys > 0 Тогда tys_txt = Nums4(tys) & «тысячи» Case 1 tys_txt = Nums4(tys) & «thousand» Случай 2, 3, 4 tys_txt = Nums4(tys) & "thousands" Case 5 To 9 tys_txt = Nums4(tys) & "thousands" End Select Если dectys = 0 And tys = 0 И sottys <> 0 Тогда sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) ' проверить десятки Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1 (ed) rrr: 'сформировать последнюю строку с помощью SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' вспомогательная функция для извлечения из количества цифр Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10^I)))/10^(I - 1)) Конечная функция    

Сохраните файл (если у вас Excel 2007 или 2010, то тип файла должен быть с поддержкой макросов, т.е. формат xlsm!) и вернитесь в Excel. Теперь созданную функцию можно вставить в любую ячейку рабочего листа обычным способом – через мастер функций (кнопка fx в строке формул, категория User Defined) или просто введя его в ячейку вручную и указав в качестве аргумента ячейку с суммой:

Если к полученному тексту нужно добавить копейки, то можно использовать чуть более сложную конструкцию:

 u3d СУММА В ЗАПИСИ (А3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A100))*00;»XNUMX″)&»коп.» 

u3d СУММА В ЗАПИСИ (А3)&» руб. «&ТЕКСТ((A3-INT(A100))*00;»XNUMX″)&»коп.»

Тогда, например, для числа 35,15 результат функции будет иметь вид «тридцать пять рублей. 15 коп.»

 

  • Более мощная версия функции с рублями и копейками на/английском языке из дополнения PLEX.
  • Что такое макросы, куда вставлять код макроса, как их использовать

 

Оставьте комментарий