Suma kursyvu

Turinys

Žemiau rasite paruoštą vartotojo apibrėžtą VBA funkciją, kuri verčia bet kokį skaičių nuo 0 į 9 į tekstinį vaizdą, ty į kiekį žodžiais. Prieš naudojant šią funkciją reikia pridėti prie knygos. Už tai:

  1. paspauskite spartųjį klavišą ALT + F11Norėdami atidaryti Visual Basic redaktorių
  2. pridėkite naują tuščią modulį per meniu Įterpimas – modulis
  3. nukopijuokite ir įklijuokite šios funkcijos tekstą ten:
Funkcija SUM(n As Double) Kaip eilutė Dim Skaičiai1, Skaičiai2, Skaičiai3, Skaičiai4 Kaip Variantas Skaičiai1 = Array("", "one", "du", "trys", "keturi", "penki", "šeši", "septyni", "aštuoni", "devyni") Skaičiai2 = Array ("", "dešimt", "dvidešimt", "trisdešimt", "keturiasdešimt", "penkiasdešimt", "šešiasdešimt", "septyniasdešimt", _ "aštuoniasdešimt" ", "devyniasdešimt") Nums3 = Array("", "vienas šimtas", "du šimtai", "trys šimtai", "keturi šimtai", "penki šimtai", "šeši šimtai", "septyni šimtai", _ " aštuoni šimtai", "devyni šimtai") Skaičiai4 = Array ("", "vienas", "du", "trys", "keturi", "penki", "šeši", "septyni", "aštuoni", "devyni" ") Skaičiai5 = Array("dešimt " , "vienuolika", "dvylika", "trylika", "keturiolika", _ "penkiolika", "šešiolika", "septyniolika", "aštuoniolika", "devyniolika") Jei n < = 0 Tada SUMWRITE = "nulis" Išeiti iš funkcijos Pabaiga If 'padalinkite skaičių į skaitmenis naudodami pagalbinę funkciją Class 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) 'patikrinkite milijonus Pasirinkite atvejį decmil 1 atvejis mil_txt = Nums5 (mil ) & „milijonai " GoTo www 2 atvejis iki 9 decmil_txt = Nums2 (decmil) Pabaigos pasirinkimas Pasirinkti atvejį mil 1 atvejis mil_txt = Nums1 (mil) ir "milijonas" 2, 3, 4 atvejis mil_txt = Nums1 (mil) ir "milijonas" atvejis nuo 5 iki 20 mil_txt = Skaičiai1(mil) & "milijonai " Pabaiga Pasirinkite www: sottys_txt = Skaičius3(sottys) ' patikrinti tūkstančius Pasirinkti atvejį dectys 1 atvejis tys_txt = Nums5(tys) & "thousands " GoTo eee 2 atvejis Iki 9 dectys_txt = Nums2(dectys)0 Pabaiga Pasirinkite Pasirinkti atvejį tys Atvejis 0 Jei dectys > 4 Tada tys_txt = Skaičiai1(tys) & "tūkstančiai" 4 atvejis tys_txt = Nums2(tys) & "tūkstantis" 3, 4, 4 atvejis tys_txt = Nums5(tys) ir "tūkstantys" Atvejis nuo 9 iki 4 tys_txt = Skaičius0(tys) & "tūkstančiai " Pabaiga Pasirinkite, jei dectys = 0 Ir tys = 0 Ir sottys <> 3 Tada sottys_txt = sottys_txt & "tūkstančiai" eee: sot_txt = Nums1(sot) Pasirinkite Casse 'check tens dec 5 atvejis ed_txt = Nums2(ed) GoTo rrr 9 atvejis iki 2 dec_txt = Nums1(dec) Pabaiga Pasirinkite ed_txt = Nums10 (ed) rrr: 'sudaryti paskutinę eilutę su SUM IN SPEECH = decmil_ txt & mil_txt & sottytts & sottyts_ tys_txt & sot_txt & dec_txt & ed_txt Pabaiga Fu nction ' pagalbinė funkcija, skirta išskirti iš skaitmenų skaičiaus Privati ​​funkcija Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 1 ^ (I - XNUMX)) Pabaigos funkcija    

Išsaugokite failą (jei turite Excel 2007 arba 2010, tada failo tipas turi būti įjungtas makrokomandos, ty xlsm formatu!) ir grįžkite į Excel. Dabar sukurtą funkciją galite įterpti į bet kurį darbalapio langelį įprastu būdu – per funkcijų vedlį (mygtukas fx formulės juostoje, kategorijoje Vartotojo apibrėžta) arba tiesiog rankiniu būdu įvesdami jį langelyje ir nurodydami langelį su suma kaip argumentu:

Jei prie gauto teksto reikia pridėti centų, galite naudoti šiek tiek sudėtingesnę konstrukciją:

 u3d SUMMA ĮRAŠYTI (A3) & ” patrinkite. „&TEXT((A3-INTEGER(A100))*00;“XNUMX″)&“policininkas“. 

u3d SUMMA ĮRAŠYTI (A3) & ” patrinkite. „&TEXT((A3-INT(A100))*00;“XNUMX″)&“policininkas“.

Tada, pavyzdžiui, skaičiui 35,15, funkcijos rezultatas atrodys kaip „trisdešimt penki rubliai. 15 kopijų.

 

  • Galingesnė funkcijos versija su rubliais ir kapeikomis / anglų kalba iš PLEX priedo
  • Kas yra makrokomandos, kur įterpti makrokomandos kodą, kaip jas naudoti

 

Palikti atsakymą