სუმა კუირსიულში

შინაარსი

ქვემოთ ნახავთ მზა მომხმარებლის მიერ განსაზღვრულ ფუნქციას VBA-ში, რომელიც თარგმნის ნებისმიერ რიცხვს საწყისი 0 to 9 მის ტექსტურ წარმოდგენაში, ანუ სიტყვებში ოდენობით. გამოყენებამდე ეს ფუნქცია უნდა დაემატოს თქვენს წიგნს. Ამისთვის:

  1. დააჭირეთ კლავიშის მალსახმობას ALT + F11Visual Basic რედაქტორის გასახსნელად
  2. დაამატეთ ახალი ცარიელი მოდული მენიუს საშუალებით ჩასმა – მოდული
  3. დააკოპირეთ და ჩასვით ამ ფუნქციის ტექსტი იქ:
ფუნქცია SUM(n როგორც ორმაგი) როგორც სიმებიანი Dim Nums1, Nums2, Nums3, Nums4 როგორც ვარიანტი Nums1 = Array("", "ერთი", "ორი", "სამი", "ოთხი", "ხუთი", "ექვსი", "შვიდი", "რვა", "ცხრა") Nums2 = მასივი ("", "ათი", "ოცი", "ოცდაათი", "ორმოცი", "ორმოცდაათი", "სამოცი", "სამოცდაათი", _ "ოთმოცი". ", "ოთხმოცდაათი") Nums3 = Array("", "ასი", "ორასი", "სამასი", "ოთხასი", "ხუთასი", "ექვსასი", "შვიდასი", _ " რვაასი", "ცხრაასი") Nums4 = მასივი ("", "ერთი", "ორი", "სამი", "ოთხი", "ხუთი", "ექვსი", "შვიდი", "რვა", "ცხრა". ") Nums5 = Array("ათი " , "თერთმეტი", "თორმეტი", "ცამეტი", "თოთხმეტი", _ "თხუთმეტი", "თექვსმეტი", "ჩვიდმეტი", "თვრამეტი", "ცხრამეტი") თუ n < = 0 შემდეგ SUMWRITE = "ნულოვანი" გასვლის ფუნქციის დასრულება თუ 'დაყავით რიცხვი ციფრებად დამხმარე ფუნქციის გამოყენებით Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = კლასი (n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil= Class(n, 8) 'შეამოწმეთ მილიონები აირჩიეთ Case decmil Case 1 mil_txt = Nums5(mil ) & "მილიონები " GoTo www Case 2-დან 9-მდე decmil_txt = Nums2 (decmil) დასასრული აირჩიეთ აირჩიეთ Case mil Case 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "მილიონი" შემთხვევა 5-დან 20-მდე mil_txt = Nums1(mil) & "მილიონები" დასასრული აირჩიეთ www: sottys_txt = Nums3(sottys) ' შეამოწმეთ ათასობით აირჩიეთ Case dectys შემთხვევა 1 tys_txt = Nums5(tys) & "ათასები" გადადით eee შემთხვევა 2-დან 9 dectys_2(txt)Nms დასასრული აირჩიეთ აირჩიეთ ქეისი tys შემთხვევა 0 თუ dectys > 0 შემდეგ tys_txt = Nums4(tys) & "ათასები" შემთხვევა 1 tys_txt = Nums4(tys) & "ათას" შემთხვევა 2, 3, 4 tys_txt = Nums4(tys) და "ათასი" შემთხვევა 5 დან 9 tys_txt = Nums4(tys) & "ათასები" დასასრული აირჩიეთ თუ dectys = 0 და tys = 0 და sottys <> 0 შემდეგ sottys_txt = sottys_txt & "ათასები" eee: sot_txt = Nums3(sot) აირჩიეთ Caseck dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2-დან 9-მდე dec_txt = Nums2(dec) დასასრული აირჩიეთ ed_txt = Nums1 (ed) rrr: 'შექმენით ბოლო მწკრივი SUM IN SPEECH = decmil_ txt & mil_txt & sottyst tys_txt & sot_txt & dec_txt & ed_txt End Fu nction ' დამხმარე ფუნქცია ციფრების რაოდენობის ამოსაღებად პირადი ფუნქციის კლასი(M, I) კლასი = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) დასრულების ფუნქცია    

შეინახეთ ფაილი (თუ გაქვთ Excel 2007 ან 2010, მაშინ ფაილის ტიპი უნდა იყოს მაკრო ჩართული, ანუ xlsm ფორმატი!) და დაუბრუნდით Excel-ს. ახლა თქვენ შეგიძლიათ შეიყვანოთ შექმნილი ფუნქცია სამუშაო ფურცლის ნებისმიერ უჯრედში ჩვეულებრივი გზით - ფუნქციის ოსტატის მეშვეობით (ღილაკი fx ფორმულების ზოლში, კატეგორიაში მომხმარებლის განსაზღვრა) ან უბრალოდ აკრიფეთ იგი უჯრედში ხელით და მიუთითეთ უჯრედი ოდენობით, როგორც არგუმენტი:

თუ მიღებულ ტექსტში პენის დამატება გჭირდებათ, შეგიძლიათ გამოიყენოთ ოდნავ უფრო რთული კონსტრუქცია:

 u3d SUM IN WRITE (A3) & ” რუბ. "&TEXT((A3-INTEGER(A100))*00;"XNUMX″)&"პოლიციელი." 

u3d SUM IN WRITE (A3) & ” რუბ. "&TEXT((A3-INT(A100))*00;"XNUMX″)&"პოლიციელი."

შემდეგ, მაგალითად, 35,15 ნომრისთვის, ფუნქციის შედეგი გამოიყურება როგორც "ოცდათხუთმეტი რუბლი. 15 კოპი.”

 

  • ფუნქციის უფრო ძლიერი ვერსია რუბლითა და კაპიკებით / ინგლისურად PLEX დანამატიდან
  • რა არის მაკროები, სად ჩავსვათ მაკრო კოდი, როგორ გამოვიყენოთ ისინი

 

დატოვე პასუხი