Kuirsivdagi suma

Mundarija

Quyida siz VBA-da istalgan raqamni tarjima qiladigan foydalanuvchi tomonidan aniqlangan tayyor funktsiyani topasiz 0 dan 9 uchun uning matn ifodasiga, ya'ni so'zlardagi miqdorga. Foydalanishdan oldin bu funksiya kitobingizga qo'shilishi kerak. Buning uchun:

  1. klaviatura yorlig'ini bosing ALT + F11Visual Basic muharririni ochish uchun
  2. menyu orqali yangi bo'sh modul qo'shing Qo'shish - modul
  3. Ushbu funktsiya matnini u erga nusxalash va joylashtirish:
Funktsiya SUM(n ikki barobar) qator sifatida Dim sonlar1, sonlar2, sonlar3, sonlar4 Variant sifatida Nums1 = Massiv("", "bir", "ikki", "uch", "to'rt", "besh", "olti", "etti", "sakkiz", "to'qqiz") Nums2 = Massiv("", "o'n", "yigirma", "o'ttiz", "qirq", "ellik", "oltmish", "etmish", _ "sakson" ", "to'qson") Nums3 = Massiv("", "yuz", "ikki yuz", "uch yuz", "to'rt yuz", "besh yuz", "olti yuz", "etti yuz", _ " sakkiz yuz", "to'qqiz yuz") Nums4 = Massiv("", "bir", "ikki", "uch", "to'rt", "besh", "olti", "etti", "sakkiz", "to'qqiz" ") Nums5 = Massiv("o'n " , "o'n bir", "o'n ikki", "o'n uch", "o'n to'rt", _ "o'n besh", "o'n olti", "o'n etti", "o'n sakkiz", "o'n to'qqiz") Agar n < = 0 Keyin SUMWRITE = "nol" Chiqish Funktsiya End If 'yordamchi funksiya yordamida sonni raqamlarga bo'lish Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class (n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'millionlarni tekshiring Case decmil Case 1 mil_txt = Nums5(mil). ) & "millions" GoTo www 2 dan 9 gacha decmil_txt = Nums2(decmil) End Tanlash Case tanlash mil 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "million" Case 5 dan 20 mil_txt = Nums1(mil) & "millions" End ni tanlang www: sottys_txt = Nums3(sottys) ' check minglar Case dectys ni tanlang Case 1 tys_txt = Nums5(tys) & "minglabs " GoTo eee Case 2 dan 9 dectys_txt = Nums2(dectys) End Select Case tys Case 0 Agar dectys > 0 bo'lsa, tys_txt = Nums4(tys) & "mings" Case 1 tys_txt = Nums4(tys) & "thousand" Case 2, 3, 4 tys_txt = Nums4(tys) & "minglab" Case 5 dan 9 gacha tys_txt = Nums4(tys) & "thousands" End Tanlash Agar dectys = 0 Va tys = 0 Va sottys <> 0 Keyin sottys_txt = sottys_txt & "minglab" eee: sot_txt = Nums3(sot)' o'nlab tekshirish Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 dan 9 dec_txt = Nums2(dec) End Tanlash ed_txt = Nums1 (ed) rrr: 'SUM IN SPEECH = decmil_ txt & mil_txt bilan yakuniy qatorni hosil qiling sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' raqamlar sonidan ajratib olish uchun yordamchi funksiya Xususiy funktsiya klassi(M, I) Class = Int(Int(M - (10 ^ I)) * Int(M / () 10 ^ I))) / 10 ^ (I - 1)) Tugatish funktsiyasi    

Faylni saqlang (agar sizda Excel 2007 yoki 2010 bo'lsa, u holda fayl turi makro-yoqilgan bo'lishi kerak, ya'ni xlsm formati!) va Excelga qayting. Endi siz yaratilgan funktsiyani ish varag'ining istalgan katakchasiga odatdagi usulda - funksiya ustasi (tugmachasi) orqali kiritishingiz mumkin. fx formulalar qatorida, kategoriyada Foydalanuvchi aniqlangan) yoki oddiygina uni katakka qo'lda kiritish va argument sifatida miqdori bilan katakchani ko'rsatish orqali:

Agar siz qabul qilingan matnga tiyin qo'shishingiz kerak bo'lsa, unda siz biroz murakkabroq qurilishdan foydalanishingiz mumkin:

 u3d YAZIShDA YUMLASH (A3) & ” rub. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”politsiya.” 

u3d YAZIShDA YUMLASH (A3) & ” rub. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”politsiya.”

Keyin, masalan, 35,15 raqami uchun funktsiyaning natijasi "o'ttiz besh rubl" kabi ko'rinadi. 15 kop."

 

  • PLEX plaginidan ingliz tilidagi rubl va tiyinlar bilan funktsiyaning yanada kuchli versiyasi
  • Makroslar nima, makro kodni qayerga kiritish kerak, ulardan qanday foydalanish kerak

 

Leave a Reply