Suma in cuirsive

Contents [show]

Hieronder vind u 'n klaargemaakte gebruikergedefinieerde funksie in VBA wat enige nommer vertaal van 0 na 9 in sy tekstuele voorstelling, dit wil sê in die hoeveelheid in woorde. Voor gebruik moet hierdie funksie by jou boek gevoeg word. Vir dit:

  1. druk die sleutelbordkortpad ALT + F11om die Visual Basic Editor oop te maak
  2. voeg nuwe leë module by via spyskaart Voeg in – Module
  3. kopieer en plak die teks van hierdie funksie daar:
Funksie SUM(n As dubbel) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Skikking("", "een", "twee", "drie", "vier", "vyf", "ses", "sewe", "agt", "nege") Nums2 = Skikking("", "tien", "twintig", "dertig", "veertig", "vyftig", "sestig", "sewentig", _ "tagtig ", "negentig") Nums3 = Skikking("", "eenhonderd", "tweehonderd", "driehonderd", "vierhonderd", "vyfhonderd", "seshonderd", "sewehonderd", _ " agthonderd", "negehonderd") Nums4 = Skikking("", "een", "twee", "drie", "vier", "vyf", "ses", "sewe", "agt", "nege ") Nums5 = Skikking("tien ", "elf", "twaalf", "dertien", "veertien", _ "vyftien", "sestien", "sewentien", "agtien", "negentien") As n < = 0 Dan SUMWRITE = "nul" Verlaat Funksie Einde If 'verdeel die getal in syfers deur die helperfunksie Klas ed = Klas(n, 1) dec = Klas(n, 2) sot = Klas(n, 3) tys = Klas (n, 4) dectys = Klas(n, 5) sottys = Klas(n, 6) mil = Klas(n, 7) decmil= Klas(n, 8) 'check miljoene Kies Case decmil Case 1 mil_txt = Nums5(mil ) & "miljoene " Gaan na www Case 2 To 9 decmil_txt = Nums2(decmil) Einde Kies Case mil Case 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "milion " Case 5 To 20 mil_txt = Nums1(mil) & "miljoene " Einde Kies www: sottys_txt = Nums3(sottys) ' check duisende Kies Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " Gaan na eee Case 2 To 9 dectys_txt = Nums2(dectys) Einde Kies Kies Geval tys Geval 0 As dectys > 0 Dan tys_txt = Nums4(tys) & "duisende " Geval 1 tys_txt = Nums4(tys) & "duisend " Case 2, 3, 4 tys_txt = Nums4(tys) & "duisende " Geval 5 tot 9 tys_txt = Nums4(tys) & "thousands " Einde Kies As dectys = 0 En tys = 0 En sottys <> 0 Dan sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) 'check tiens Kies Case des Geval 1 ed_txt = Nums5(ed) Gaan na rrr Geval 2 tot 9 dec_txt = Nums2(des) Einde Kies ed_txt = Nums1 (ed) rrr: 'vorm die laaste ry met SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectystxt tys_txt & sot_txt & dec_txt & ed_txt End Fu nction '-helperfunksie om uit die aantal syfers te onttrek Privaatfunksie Klas(M, I) Klas = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) Eindfunksie    

Stoor die lêer (as jy Excel 2007 of 2010 het, dan moet die lêertipe makro-geaktiveer wees, maw xlsm-formaat!) en keer terug na Excel. Nou kan jy die geskepde funksie op die gewone manier in enige sel van die werkblad invoeg – deur die funksie-assistent (knoppie fx in formulebalk, kategorie Gebruiker gedefinieerd) of bloot deur dit met die hand in die sel in te tik en die sel met die bedrag as 'n argument te spesifiseer:

As jy pennies by die ontvangde teks moet voeg, kan jy 'n effens meer komplekse konstruksie gebruik:

 u3d SOM IN SKRYF (A3) & ” vryf. "&TEXT((A3-INTEGER(A100))*00;"XNUMX″)&"cop." 

u3d SOM IN SKRYF (A3) & ” vryf. "&TEXT((A3-INT(A100))*00;"XNUMX″)&"cop."

Dan, byvoorbeeld, vir die getal 35,15, sal die resultaat van die funksie soos "vyf-en-dertig roebels lyk. 15 koppies.”

 

  • 'N Kragtiger weergawe van die funksie met roebels en kopecks in / Engels vanaf die PLEX-byvoeging
  • Wat is makro's, waar om makro-kode in te voeg, hoe om dit te gebruik

 

Lewer Kommentaar