Suma i cuirsive

Indhold

Nedenfor finder du en færdiglavet brugerdefineret funktion i VBA, der oversætter ethvert tal fra 0 til 9 ind i sin tekstlige repræsentation, altså i mængden i ord. Før brug skal denne funktion føjes til din bog. For det:

  1. tryk på tastaturgenvejen ALT + F11for at åbne Visual Basic Editor
  2. tilføje nyt tomt modul via menuen Indsæt – Modul
  3. kopier og indsæt teksten til denne funktion der:
Funktion SUM(n som dobbelt) Som streng Dim Nums1, Nums2, Nums3, Nums4 Som Variant Nums1 = Array("", "én", "to", "tre", "fire", "fem", "seks", "syv", "otte", "ni") Nums2 = Array("", "ti", "tyve", "tredive", "fyrre", "halvtreds", "tres", "halvfjerds", _ "firs" ", "halvfems") Nums3 = Array("", "et hundrede", "to hundrede", "tre hundrede", "fire hundrede", "fem hundrede", "seks hundrede", "syv hundrede", _ " otte hundrede", "ni hundrede") Nums4 = Array("", "én", "to", "tre", "fire", "fem", "seks", "syv", "otte", "ni ") Nums5 = Array("ti ", "elleve", "tolv", "tretten", "fjorten", _ "femten", "seksten", "sytten", "atten", "nitten") Hvis n < = 0 Så SUMWRITE = "nul" Afslut funktion End If 'del tallet i cifre ved hjælp af hjælpefunktionen Klasse ed = Klasse(n, 1) dec = Klasse(n, 2) sot = Klasse(n, 3) tys = Klasse (n, 4) dectys = Klasse(n , 5) sottys = Klasse(n, 6) mil = Klasse(n, 7) decmil= Klasse(n, 8) 'check millioner Vælg Case decmil Case 1 mil_txt = Nums5(mil ) & "millioner " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "million " Case 5 To 20 mil_txt = Nums1(mil) & "millioner " Slut Vælg www: sottys_txt = Nums3(sottys) ' tjek tusinder Vælg Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " Gå til eee Case 2 Til 9 dectys_txt = Nums2(dectys) Afslut Vælg Vælg Case tys Case 0 Hvis dectys > 0 Så tys_txt = Nums4(tys) & "thousands " Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys) & "thousands " Case 5 Til 9 tys_txt = Nums4(tys) & "thousands " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) 'check tiers Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Vælg ed_txt = Nums1 (ed) rrr: 'dan den sidste række med SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectystxt tys_txt & sot_txt & dec_txt & ed_txt End Fu nction ' hjælpefunktion til at udtrække fra antallet af cifre Privat funktion Klasse(M, I) Klasse = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) Slutfunktion    

Gem filen (hvis du har Excel 2007 eller 2010, så skal filtypen være makroaktiveret, altså xlsm-format!) og vend tilbage til Excel. Nu kan du indsætte den oprettede funktion i en hvilken som helst celle i regnearket på den sædvanlige måde - gennem funktionsguiden (knap fx i formellinje, kategori Brugerdefineret) eller blot ved at skrive det i cellen manuelt og angive cellen med beløbet som argument:

Hvis du har brug for at tilføje øre til den modtagne tekst, så kan du bruge en lidt mere kompleks konstruktion:

 u3d SUM PÅ SKRIFT (A3) & ” gnid. "&TEXT((A3-INTEGER(A100))*00;"XNUMX″)&"cop." 

u3d SUM PÅ SKRIFT (A3) & ” gnid. "&TEXT((A3-INT(A100))*00;"XNUMX″)&"cop."

Så, for eksempel for tallet 35,15, vil resultatet af funktionen se ud som "femogtredive rubler. 15 kop.”

 

  • En mere kraftfuld version af funktionen med rubler og kopek på / engelsk fra PLEX-tilføjelsen
  • Hvad er makroer, hvor skal man indsætte makrokode, hvordan man bruger dem

 

Giv en kommentar