Suma i cuirsive

Innehåll

Nedan hittar du en färdig användardefinierad funktion i VBA som översätter valfritt nummer från 0 till 9 i sin textmässiga representation, dvs i mängden i ord. Före användning måste denna funktion läggas till i din bok. För detta:

  1. tryck på kortkommandot ALT + F11för att öppna Visual Basic Editor
  2. lägg till ny tom modul via menyn Infoga – Modul
  3. kopiera och klistra in texten för denna funktion där:
Funktion SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 Som Variant Nums1 = Array("", "en", "två", "tre", "fyra", "fem", "sex", "sju", "åtta", "nio") Nums2 = Array("", "tio", "tjugo", "trettio", "fyrtio", "femtio", "sextio", "sjuttio", _ "åttio ", "nittio") Nums3 = Array("", "etthundra", "tvåhundra", "trehundra", "fyrahundra", "femhundra", "sexhundra", "sjuhundra", _ " åttahundra", "niohundra") Nums4 = Array("", "en", "två", "tre", "fyra", "fem", "sex", "sju", "åtta", "nio ") Nums5 = Array("tio", "elva", "tolv", "tretton", "fjorton", _ "femton", "sexton", "sjutton", "arton", "nitton") Om n < = 0 Då SUMWRITE = "noll" Avsluta Funktion End If 'dela talet i siffror med hjälp av hjälpfunktionen 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 Välj Case decmil Case 1 mil_txt = Nums5(mil ) & "miljoner " Gå till www Fall 2 Till 9 decmil_txt = Nums2(decmil) Slut Välj Välj Fall mil Fall 1 mil_txt = Nums1(mil) & "miljoner " Fall 2, 3, 4 mil_txt = Nums1(mil) & "miljon" Fall 5 Till 20 mil_txt = Nums1(mil) & "miljoner " Slut Välj www: sottys_txt = Nums3(sottys) ' kontrollera tusentals Välj Fall dectys Fall 1 tys_txt = Nums5(tys) & "tusentals " GoTo eee Fall 2 Till 9 dectys_txt Nums2(dectys) Slut Välj Välj Fall tys Fall 0 Om dectys > 0 Då tys_txt = Nums4(tys) & "thousands " Fall 1 tys_txt = Nums4(tys) & "thousand " Fall 2, 3, 4 tys_txt = Nums4(tys & "tusentals " Fall 5 till 9 tys_txt = Nums4(tys) & "tusentals " Avsluta Välj Om dectys = 0 Och tys = 0 Och sottys <> 0 Då sottys_txt = sottys_txt & "tusentals" eee: sot_txt = Nums3(sot) ' check tiotals Välj Fall dec Fall 1 ed_txt = Nums5(ed) GoTo rrr Fall 2 Till 9 dec_txt = Nums2(dec) Slut Välj ed_txt = Nums1 (ed) rrr: 'bilda den sista raden med SUM I SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt Slutfunktion ' hjälpfunktion för att extrahera från antalet siffror Privat funktion Klass(M, I) Klass = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Slutfunktion    

Spara filen (om du har Excel 2007 eller 2010, då måste filtypen vara makroaktiverad, dvs xlsm-format!) och återgå till Excel. Nu kan du infoga den skapade funktionen i valfri cell i kalkylbladet på vanligt sätt – genom funktionsguiden (knapp fx i formelfältet, kategori Användardefinierad) eller helt enkelt genom att skriva det i cellen manuellt och ange cellen med beloppet som argument:

Om du behöver lägga till öre till den mottagna texten kan du använda en lite mer komplex konstruktion:

 u3d SUMMA I SKRIV (A3) & ” gnugga. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”cop.” 

u3d SUMMA I SKRIV (A3) & ” gnugga. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”cop.”

Sedan, till exempel, för talet 35,15, kommer resultatet av funktionen att se ut som "trettiofem rubel. 15 kop.”

 

  • En kraftfullare version av funktionen med rubel och kopek på / engelska från PLEX-tillägget
  • Vad är makron, var man infogar makrokod, hur man använder dem

 

Kommentera uppropet