Suma v zvedavosti

Obsah

Nižšie nájdete pripravenú užívateľom definovanú funkciu vo VBA, ktorá preloží ľubovoľné číslo od 0 do 9 do jeho textového znázornenia, teda v množstve v slov. Pred použitím musí byť táto funkcia pridaná do vašej knihy. Pre to:

  1. stlačte klávesovú skratku ALT + F11otvorte editor jazyka Visual Basic
  2. pridať nový prázdny modul cez menu Vložiť – Modul
  3. skopírujte a vložte text tejto funkcie tam:
Funkcia SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "jeden", "dva", "tri", "štyri", "päť", "šesť", "sedem", "osem", "deväť") Nums2 = Array("", "desať", "dvadsať", "tridsať", "štyridsať", "päťdesiat", "šesťdesiat", "sedemdesiat", _ "osemdesiat" ", "deväťdesiat") Nums3 = Array("", "sto", "dvesto", "tristo", "štyristo", "päťsto", "šesťsto", "sedemsto", _ " osemsto", "deväťsto") Nums4 = Array("", "jeden", "dva", "tri", "štyri", "päť", "šesť", "sedem", "osem", "deväť" ") Nums5 = Array("desať ", "jedenásť", "dvanásť", "trinásť", "štrnásť", _ "pätnásť", "šestnásť", "sedemnásť", "osemnásť", "devätnásť") Ak n < = 0 Potom SUMWRITE = "nula" Ukončiť funkciu End If 'rozdeliť číslo na číslice pomocou pomocnej funkcie 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) 'kontrola miliónov Select Case decmil Case 1 mil_txt = Nums5(mil ) & "milióny" Prejsť na www Prípad 2 až 9 decmil_txt = Nums2(decmil) Koniec Vybrať Vyberte Case mil Case 1 mil_txt = Nums1(mil) & "million" Prípad 2, 3, 4 mil_txt = Nums1(mil) & "million " Prípad 5 až 20 mil_txt = Nums1(mil) & "milióny " Koniec Vybrať www: sottys_txt = Nums3(sottys) ' skontrolovať tisíce Vybrať prípad dectys Prípad 1 tys_txt = Nums5(tys) & "tisíce" Prejsť na eee Prípad 2 až 9 dectys_txt Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "thousands " Prípad 1 tys_txt = Nums4(tys) & "thousand " Prípad 2, 3, 4 tys_txt = Nums4(tys) & "tisíce" Prípad 5 až 9 tys_txt = Nums4(tys) & "tisíce " Koniec Vyberte Ak dectys = 0 A tys = 0 A sottys <> 0 Potom sottys_txt = sottys_txt & "tisíce" eee: sot_txt = Nums3'(sotty) skontrolovať desiatky Vyberte veľkosť písmen dec 1 ed_txt = Nums5(ed) PrejsťTo rrr Prípad 2 až 9 dec_txt = Nums2(dec) Koniec Vyberte ed_txt = Nums1 (ed) rrr: 'vytvorte posledný riadok so SUM IN SPEECH = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' pomocná funkcia na extrakciu z počtu číslic Súkromná funkcia Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Koniec funkcie    

Uložte súbor (ak máte Excel 2007 alebo 2010, tak typ súboru musí mať povolené makro, teda formát xlsm!) a vráťte sa do Excelu. Teraz môžete vytvorenú funkciu vložiť do ľubovoľnej bunky hárka obvyklým spôsobom – prostredníctvom sprievodcu funkciou (tlačidlo fx v riadku vzorcov, kategórii Definované užívateľom) alebo jednoducho tak, že ho napíšete ručne do bunky a ako argument uvediete bunku so sumou:

Ak potrebujete k prijatému textu pridať haliere, môžete použiť o niečo zložitejšiu konštrukciu:

 u3d SÚČET ZAPÍŠTE (A3) & ” rub. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”policajt.” 

u3d SÚČET ZAPÍŠTE (A3) & ” rub. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”policajt.”

Potom napríklad pre číslo 35,15 bude výsledok funkcie vyzerať ako „tridsaťpäť rubľov. 15 kop."

 

  • Výkonnejšia verzia funkcie s rubľmi a kopejkami v / angličtine z doplnku PLEX
  • Čo sú makrá, kam vložiť kód makra, ako ich používať

 

Nechaj odpoveď