Suma a kurzívában

tartalom

Az alábbiakban egy kész, felhasználó által definiált függvényt talál a VBA-ban, amely bármilyen számot lefordít tól 0 a 9 szöveges megjelenítésébe, azaz a szavakban kifejezett mennyiségbe. Használat előtt ezt a funkciót hozzá kell adni a könyvhöz. Ezért:

  1. nyomja meg a billentyűparancsot ALT + F11a Visual Basic Editor megnyitásához
  2. új üres modul hozzáadása a menün keresztül Beszúrás – Modul
  3. másolja és illessze be a függvény szövegét:
Függvény SUM(n As Double) As String Dim Szám1, Szám2, Szám3, Szám4 Változatként Szám1 = Array("", "one", "two", "three", "four", "five", "six", "hét", "nyolc", "kilenc") Nums2 = Array("", "tíz", "húsz", "harminc", "negyven", "ötven", "hatvan", "hetven", _ "nyolcvan" ", "kilencven") Nums3 = Array("", "egyszáz", "kétszáz", "háromszáz", "négyszáz", "ötszáz", "hatszáz", "hétszáz", _ " nyolcszáz", "kilencszáz") Nums4 = Array("", "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc", "kilenc" ") Nums5 = Array("tíz " , "tizenegy", "tizenkét", "tizenhárom", "tizennégy", _ "tizenöt", "tizenhat", "tizenhét", "tizennyolc", "tizenkilenc") Ha n < = 0, majd SUMWRITE = "nulla" Kilépés a függvényből End If 'osztja a számot számjegyekre a segítő függvény segítségével 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) 'check millions Select Case decmil 1. eset mil_txt = Szám5(mil ) & "million" GoTo www. 2. eset 9. decmil_txt = Szám2(decmil) Vég kiválasztása Eset mil 1. eset mil_txt = Nums1(mil) & "millio" 2., 3., 4. eset mil_txt = Szám1(mil) & "millió " 5. eset – 20 mil_txt = Szám1(mil) és „milliók” Vége Kiválasztás www: sottys_txt = Szám3(sottys) ' check ezeres eset kiválasztása Eset dectys 1. eset tys_txt = Nums5(tys) & "thousands" GoTo eee 2. eset 9 dectys_txt Szám2(dektys) Vége Kiválasztás Eset kiválasztása tys 0. eset Ha dectys > 0 Akkor tys_txt = szám4(tys) & "thousands" 1. eset tys_txt = Nums4(tys) & "thousand" 2., 3., 4. eset tys_txt = Nums4(tys) & "ezrek" 5. eset 9. tys_txt = Nums4(tys) & "thousands " Végkijelölés Ha dectys = 0 És tys = 0 És sottys <> 0 Akkor sottys_txt = sottys_txt & "ezer" eee: sot_txt) = Nums3(sot) check tens Select Case dec 1. eset ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Szám2(dec) End Select ed_txt = Nums1 (ed) rrr: 'a végső sorba a SUM IN SPEECH = decmil_ txt & mil_tx sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' segítőfüggvény a számjegyek számából történő kivonathoz Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / () 10 ^ I))) / 10 ^ (I - 1)) Végfüggvény    

Mentse el a fájlt (ha van Excel 2007 vagy 2010, akkor a fájltípusnak makró-engedélyezettnek, azaz xlsm formátumúnak kell lennie!) és térjen vissza az Excelbe. Most már a megszokott módon – a függvényvarázslón keresztül – beszúrhatjuk a létrehozott függvényt a munkalap bármely cellájába (gomb fx képletsávban, kategóriában Felhasználó által meghatározott) vagy egyszerűen úgy, hogy manuálisan beírja a cellába, és argumentumként adja meg a cellát az összeggel:

Ha filléreket kell hozzáadnia a kapott szöveghez, akkor egy kicsit összetettebb konstrukciót használhat:

 u3d SUM IN WRITE (A3) & ” dörzsölje. „&SZÖVEG((A3-INTEGER(A100))*00;”XNUMX″)&”zsaru.” 

u3d SUM IN WRITE (A3) & ” dörzsölje. „&SZÖVEG((A3-INT(A100))*00;”XNUMX″)&”zsaru.”

Ekkor például a 35,15 szám esetén a függvény eredménye így fog kinézni: „harmincöt rubel. 15 kop.”

 

  • A more powerful version of the function with rubles and kopecks in / English from the PLEX add-on
  • Mik azok a makrók, hova kell beszúrni a makrókódot, hogyan kell használni őket

 

Hagy egy Válaszol