Suma kielessä

Sisällys

Alta löydät VBA:ssa valmiin käyttäjän määrittämän funktion, joka kääntää minkä tahansa numeron alkaen 0 ja 9 sen tekstimuotoon eli sanamäärään. Tämä toiminto on lisättävä kirjaasi ennen käyttöä. Tätä varten:

  1. paina pikanäppäintä ALT + F11avataksesi Visual Basic Editorin
  2. Lisää uusi tyhjä moduuli valikon kautta Insert – moduuli
  3. kopioi ja liitä tämän funktion teksti sinne:
Funktio SUM(n As Double) As String Dim Numerot1, Numerot2, Numerot3, Numerot4 Variantina Numerot1 = Array("", "one", "two", "three", "neljä", "viisi", "kuusi", "seitsemän", "kahdeksan", "yhdeksän") Nums2 = Array("", "kymmenen", "kaksikymmentä", "kolmekymmentä", "neljäkymmentä", "viisikymmentä", "kuusikymmentä", "seitsemänkymmentä", _ "kahdeksankymmentä" ", "yhdeksänkymmentä") Nums3 = Array("", "sata", "kaksisataa", "kolmesataa", "nelisataa", "viisisataa", "kuusisataa", "seitsemänsataa", _ " kahdeksansataa", "yhdeksänsataa") Nums4 = Array("", "yksi", "kaksi", "kolme", ​​"neljä", "viisi", "kuusi", "seitsemän", "kahdeksan", "yhdeksän" ") Numerot5 = Array("kymmenen " , "yksitoista", "kaksitoista", "kolmetoista", "neljätoista", _ "viisitoista", "kuusitoista", "seitsemäntoista", "kahdeksantoista", "yhdeksäntoista") Jos n < = 0 Sitten SUMWRITE = "nolla" Poistu funktiosta End If 'jaa luku numeroiksi apufunktiolla Luokka ed = Luokka(n, 1) dec = Luokka(n, 2) sot = Luokka(n, 3) tys = Luokka (n, 4) dectys = Luokka(n, 5) sottys = Luokka(n, 6) mil = Luokka(n, 7) decmil= Luokka(n, 8) 'tarkista miljoonia Select Case decmil Tapaus 1 mil_txt = Numero5(milj. ) & "miljoonia " GoTo www Tapaus 2 - 9 decmil_txt = Numero2 (decmil) Loppu Valitse tapaus mil Tapaus 1 mil_txt = Numero1 (mil) & "miljoona" Tapaus 2, 3, 4 mil_txt = Numero 1 (mil) & "miljoona" Tapaus 5 - 20 mil_txt = Numerot1(mil) & "miljoonat" Loppu Valitse www: sottys_txt = Numerot3(sottys) ' tarkista tuhansia Valitse tapaus dectys Tapaus 1 tys_txt = Nums5(tys) & "thousands " GoTo eee Tapaus 2 To 9 dectys_txt = Nums2(dectys)0 Lopeta Valitse Valitse tapaus tys Tapaus 0 Jos dectys > 4 Sitten tys_txt = Numerot1(tys) & "tuhatta" Tapaus 4 tys_txt = Numero2(tys) & "tuhat" Tapaus 3, 4, 4 tys_txt = Numerot5(tys) & "tuhatta" Tapaus 9 - 4 tys_txt = Nums0(tys) & "tuhatta" Lopeta valinta Jos dectys = 0 Ja tys = 0 Ja sottys <> 3 Sitten sottys_txt = sottys_txt & "tuhansia" eee: sot_txt = Nums1(sot) 'check tens dec Tapaus 5 ed_txt = Nums2(ed) GoTo rrr Tapaus 9 - 2 dec_txt = Numero1(dec) Loppu Valitse ed_txt = Numero10 (ed) rrr: 'muodosta viimeinen rivi SUM IN SPEECH = decmil_ txt & mil_txt_t & sottyts_txts & sottys tys_txt & sot_txt & dec_txt & ed_txt End Fu nction ' apufunktio, joka erottaa numeroiden lukumäärästä Yksityinen funktio Luokka(M, I) Luokka = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 1 ^ (I - XNUMX)) Lopeta toiminto    

Tallenna tiedosto (jos sinulla on Excel 2007 tai 2010, tiedostotyypin tulee olla makro-yhteensopiva, eli xlsm-muotoinen!) ja palaa Exceliin. Nyt voit lisätä luodun funktion mihin tahansa laskentataulukon soluun tavalliseen tapaan – ohjatun funktiotoiminnon kautta (painike fx kaavapalkissa, kategoriassa Käyttäjän määrittelemä) tai yksinkertaisesti kirjoittamalla se soluun manuaalisesti ja määrittämällä solun summa argumenttina:

Jos haluat lisätä penniä vastaanotettuun tekstiin, voit käyttää hieman monimutkaisempaa rakennetta:

 u3d SUMMA KIRJALLINEN (A3) & ” hiero. “&TEKSTI((A3-INTEGER(A100))*00;”XNUMX″)&”poliisi.” 

u3d SUMMA KIRJALLINEN (A3) & ” hiero. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”poliisi.”

Sitten esimerkiksi numerolle 35,15 funktion tulos näyttää "kolmekymmentäviisi ruplaa. 15 koppia."

 

  • Tehokkaampi versio toiminnosta ruplilla ja kopeikoilla / englanniksi PLEX-lisäosasta
  • Mitä makrot ovat, mihin makrokoodi lisätään, miten niitä käytetään

 

Jätä vastaus