Suma in cursief

Inhoud

Hieronder vindt u een kant-en-klare, door de gebruiker gedefinieerde functie in VBA die elk getal vertaalt van 0 naar 9 in zijn tekstuele weergave, dat wil zeggen in de hoeveelheid in woorden. Voor gebruik moet deze functie aan uw boek worden toegevoegd. Voor deze:

  1. druk op de sneltoets ALT + F11om de Visual Basic Editor te openen
  2. nieuwe lege module toevoegen via menu Invoegen – Module
  3. kopieer en plak de tekst van deze functie daar:
Functie SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "one", "two", "three", "four", "five", "six", "zeven", "acht", "negen") Nums2 = Array("", "tien", "twintig", "dertig", "veertig", "vijftig", "zestig", "zeventig", _ "tachtig ", "negentig") Nums3 = Array("", "honderd", "tweehonderd", "driehonderd", "vierhonderd", "vijfhonderd", "zeshonderd", "zevenhonderd", _ " achthonderd", "negenhonderd") Nums4 = Array("", "een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen ") Nums5 = Array("tien", "elf", "twaalf", "dertien", "veertien", _ "vijftien", "zestien", "zeventien", "achttien", "negentien") If n < = 0 Then SUMWRITE = "nul" Exit Functie End If 'deel het getal in cijfers met behulp van de helpfunctie 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 Selecteer Geval decmil Geval 1 mil_txt = Nums5(mil ) & "miljoenen " Ga naar www Geval 2 tot 9 decmil_txt = Nums2(decmil) Einde Selectie Geval selecteren mil Geval 1 mil_txt = Nums1(mil) & "miljoen " Geval 2, 3, 4 mil_txt = Nums1(mil) & "miljoen " Geval 5 tot 20 mil_txt = Nums1(mil) & "miljoenen" End Selecteer www: sottys_txt = Nums3(sottys) ' check duizenden Selecteer Geval dectys Geval 1 tys_txt = Nums5(tys) & "duizenden " Ga naar eee Geval 2 tot 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 Als dectys > 0 Then tys_txt = Nums4(tys) & "thousands " Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys) & "duizenden " Geval 5 Tot 9 tys_txt = Nums4(tys) & "duizenden " Einde Selecteren Als dectys = 0 En tys = 0 And sottys <> 0 Dan sottys_txt = sottys_txt & "duizenden" eee: sot_txt = Nums3(sot) ' check tientallen 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: 'vorm de laatste rij met SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function 'helperfunctie om uit het aantal cijfers te halen Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Eindfunctie    

Sla het bestand op (als je Excel 2007 of 2010 hebt, dan moet het bestandstype macro-enabled zijn, dwz xlsm-formaat!) en keer terug naar Excel. Nu kunt u de gemaakte functie op de gebruikelijke manier in elke cel van het werkblad invoegen - via de functiewizard (knop fx in formulebalk, categorie User Defined) of gewoon door het handmatig in de cel te typen en de cel met het bedrag als argument op te geven:

Als u centen aan de ontvangen tekst moet toevoegen, kunt u een iets complexere constructie gebruiken:

 u3d SOM OP SCHRIJVEN (A3) & ” wrijven. “&TEKST((A3-INTEGER(A100))*00;”XNUMX″)&”agent.” 

u3d SOM OP SCHRIJVEN (A3) & ” wrijven. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”agent.”

Dan, bijvoorbeeld, voor het getal 35,15, ziet het resultaat van de functie eruit als "vijfendertig roebel. 15 kop.”

 

  • Een krachtigere versie van de functie met roebels en kopeken in / Engels van de PLEX-add-on
  • Wat zijn macro's, waar macrocode in te voegen, hoe ze te gebruiken?

 

Laat een reactie achter