Сума в курсив

Съдържание

По-долу ще намерите готова дефинирана от потребителя функция във VBA, която превежда произволно число от 0 да 9 в текстовото му представяне, т.е. в количество с думи. Преди да използвате, тази функция трябва да бъде добавена към вашата книга. За това:

  1. натиснете клавишната комбинация ALT + F11за да отворите редактора на Visual Basic
  2. добавете нов празен модул чрез менюто Вмъкване – Модул
  3. копирайте и поставете текста на тази функция там:
Функция SUM(n като Double) като низ Dim Nums1, Nums2, Nums3, Nums4 като вариант Nums1 = Array("", "one", "two", "three", "four", "five", "six", "седем", "осем", "девет") Nums2 = Array("", "десет", "двадесет", "тридесет", "четиридесет", "петдесет", "шестдесет", "седемдесет", _ "осемдесет" ", "деветдесет") Nums3 = Array("", "сто", "двеста", "триста", "четиристотин", "петстотин", "шестстотин", "седемстотин", _ " осемстотин", "деветстотин") Nums4 = масив("", "едно", "две", "три", "четири", "пет", "шест", "седем", "осем", "девет" ") 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) 'проверете милиони Изберете Case decmil Case 1 mil_txt = Nums5(mil) ) & "millions " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select 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 " End Select www: sottys_txt = Nums3(sottys) ' проверка на хиляди Изберете Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "thousands " Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys) & "thousands" Case 5 To 9 tys_txt = Nums4(tys) & "thousands " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) ' проверка на десетки Изберете 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 ' помощна функция за извличане от броя на цифрите Частна функция Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Крайна функция    

Запазете файла (ако имате Excel 2007 или 2010, тогава типът файл трябва да е активиран за макроси, т.е. формат xlsm!) и се върнете в Excel. Вече можете да вмъкнете създадената функция във всяка клетка на работния лист по обичайния начин – чрез съветника за функции (бутон fx в лентата с формули, категория Потребителски дефиниран) или просто като го въведете ръчно в клетката и посочите клетката със сумата като аргумент:

Ако трябва да добавите стотинки към получения текст, тогава можете да използвате малко по-сложна конструкция:

 u3d ПИСМЕНА СУМА (A3) & ” rub. „&TEXT((A3-INTEGER(A100))*00;“XNUMX″)&”ченге.” 

u3d ПИСМЕНА СУМА (A3) & ” rub. “&ТЕКСТ((A3-INT(A100))*00;”XNUMX″)&”ченге.”

Тогава, например, за числото 35,15 резултатът от функцията ще изглежда като „тридесет и пет рубли. 15 коп.

 

  • По-мощна версия на функцията с рубли и копейки на / английски от добавката PLEX
  • Какво представляват макросите, къде да вмъкнете макро код, как да ги използвате

 

Оставете коментар