Сума ў курсіве

змест

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

  1. націсніце спалучэнне клавіш ALT + F11каб адкрыць рэдактар ​​Visual Basic
  2. дадаць новы пусты модуль праз меню Устаўка – модуль
  3. скапіруйце і ўстаўце туды тэкст гэтай функцыі:
Функцыя SUM(n Як Double) Як радок Dim Nums1, Nums2, Nums3, Nums4 Як варыянт Nums1 = масіў("", "адзін", "два", "тры", "чатыры", "пяць", "шэсць", "сем", "восем", "дзевяць") Nums2 = масіў("", "дзесяць", "дваццаць", "трыццаць", "сорак", "пяцьдзесят", "шэсцьдзесят", "семдзесят", _ "восемдзесят" ", "дзевяноста") 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 = Клас(n, 5) sottys = Клас(n, 6) mil = Клас(n, 7) decmil= Клас(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) ' праверце дзесяткі 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 ' дапаможная функцыя для вылучэння з колькасці лічбаў Прыватная функцыя Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / () 10 ^ I))) / 10 ^ (I - 1)) Канчатковая функцыя    

Захавайце файл (калі ў вас Excel 2007 або 2010, то тып файла павінен быць з падтрымкай макрасаў, г. зн. фармат xlsm!) і вярніцеся ў Excel. Цяпер вы можаце ўставіць створаную функцыю ў любую ячэйку ліста звычайным спосабам – праз майстар функцый (кнопка fx у радку формул, катэгорыя Карыстальнік) або проста набраўшы яго ў ячэйку ўручную і ўказаўшы ячэйку з сумай у якасці аргумента:

Калі да атрыманага тэксту трэба дадаць капейкі, то можна выкарыстоўваць некалькі больш складаную канструкцыю:

 u3d СУМА ПІСОВА (А3) & ” руб. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”коп.” 

u3d СУМА ПІСОВА (А3) & ” руб. “&ТЭКСТ((A3-INT(A100))*00;”XNUMX″)&”паліцэйскі.”

Тады, напрыклад, для ліку 35,15 вынік функцыі будзе выглядаць як «трыццаць пяць рублёў. 15 кап».

 

  • Больш магутная версія функцыі з рублямі і капейкамі на / ангельскай ад надбудовы PLEX
  • Што такое макрасы, куды ўстаўляць код макрасаў, як імі карыстацца

 

Пакінуць каментар