Suma an cuirsive

Inhalter

Drënner fannt Dir eng fäerdeg Benotzerdefinéiert Funktioun an VBA déi all Zuel iwwersetzt vu 0 op 9 a seng textuell Duerstellung, also am Betrag a Wierder. Virum Gebrauch muss dës Funktioun an Ärem Buch bäigefüügt ginn. Dofir:

  1. dréckt d'Tastatur Ofkiirzung ALT + F11fir de Visual Basic Editor opzemaachen
  2. dobäizemaachen nei eidel Modul via Menü Insert - Modul
  3. kopéiert a paste den Text vun dëser Funktioun do:
Funktioun SUM(n Als Duebel) Als String Dim Nums1, Nums2, Nums3, Nums4 Als Variant Nums1 = Array("", "een", "zwee", "dräi", "véier", "fënnef", "sechs", "siwen", "aacht", "néng") Nums2 = Array("", "zéng", "zwanzeg", "drësseg", "féierzeg", "fofzeg", "sechzeg", "siwwenzeg", _ "aachtzeg ", "néngzeg") Nums3 = Array("", "honnert", "zweehonnert", "dräihonnert", "véierhonnert", "fënnefhonnert", "sechhonnert", "siwenhonnert", _ " aachthonnert", "nénghonnert") Nums4 = Array("", "eent", "zwee", "dräi", "véier", "fënnef", "sechs", "siwen", "aacht", "néng ") Nums5 = Array("zéng", "eelef", "zwielef", "dräizéng", "féierzéng", _ "fofzéng", "sechzéng", "siwwenzéng", "aachtzéng", "néngzéng") Wann n < = 0 Dann SUMWRITE = "null" Exit Funktioun Enn Wann 'deelt d'Zuel an Zifferen mat Hëllef vun der Hëllefsfunktioun Klass ed = Klass (n, 1) dec = Klass (n, 2) sot = Klass (n, 3) tys = Klass (n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'check millions Select Case decmil Case 1 mil_txt = Nums5(mil ) & "Milliounen" GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Case mil Case 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "million" Fall 5 Zu 20 mil_txt = Nums1(mil) & "Milliounen" End Wielt www: sottys_txt = Nums3(sottys) 'check dausende Wielt Fall dectys Fall 1 tys_txt = Nums5(tys) & "dausende " GoTo eee Fall 2 Ze 9 dectys_txt Nums2(dectys) End Wielt Wielt Fall tys Fall 0 Wann dectys > 0 Dann tys_txt = Nums4(tys) & "dausende" Fall 1 tys_txt = Nums4(tys) & "thousand " Fall 2, 3, 4 tys_txt = Nums4(tys) & "dausende " Fall 5 bis 9 tys_txt = Nums4(tys) & "dausende " End Wielt Wann dectys = 0 An tys = 0 An sottys <> 0 Dann sottys_txt = sottys_txt & "dausende" eee: sot_txt = Nums3(sot) ' check tens 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: 'form the final row with SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt Endfunktioun ' Helperfunktioun fir aus der Zuel vun den Zifferen ze extrahieren Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ ech))) / 10 ^ (ech - 1)) Enn Funktioun    

Späichert d'Datei (wann Dir Excel 2007 oder 2010 hutt, da muss de Dateityp Macro-aktivéiert sinn, also xlsm-Format!) an zréck op Excel. Elo kënnt Dir déi erstallt Funktioun an all Zell vum Aarbechtsblat op déi üblech Manéier setzen - duerch de Funktiounswizard (Knäppchen fx an der Formelbar, Kategorie Benotzerdefinéiert) oder einfach andeems Dir et manuell an d'Zelle tippt an d'Zelle mam Betrag als Argument uginn:

Wann Dir Pennys un den erhalenen Text addéiere musst, da kënnt Dir e bësse méi komplex Konstruktioun benotzen:

 u3d SUM ASCHREIWEN (A3) & " reiwen. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”cop.” 

u3d SUM ASCHREIWEN (A3) & " reiwen. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”cop.”

Dann, zum Beispill, fir d'Zuel 35,15, wäert d'Resultat vun der Funktioun wéi "drësseg-fënnef Rubelen ausgesinn. 15 kop."

 

  • Eng méi mächteg Versioun vun der Funktioun mat Rubelen a Kopecken op / Englesch vum PLEX Add-on
  • Wat sinn Makroen, wou Makrocode aginn, wéi se se benotzen

 

Hannerlooss eng Äntwert