سوما في كويرسيف

المحتويات

ستجد أدناه وظيفة معرفة من قبل المستخدم جاهزة في VBA والتي تترجم أي رقم من 0 ل9 في تمثيلها النصي ، أي في المقدار في الكلمات. قبل الاستخدام ، يجب إضافة هذه الوظيفة إلى كتابك. لهذا:

  1. اضغط على اختصار لوحة المفاتيح ALT + F11لفتح محرر Visual Basic
  2. إضافة وحدة فارغة جديدة عبر القائمة إدراج - وحدة
  3. انسخ والصق نص هذه الوظيفة هناك:
الدالة SUM (n As Double) مثل String Dim Nums1، Nums2، Nums3، Nums4 As Variant Nums1 = Array (""، "one"، "two"، "three"، "four"، "five"، "six"، "سبعة" ، "ثمانية" ، "تسعة") Nums2 = Array ("" ، "عشرة" ، "عشرين" ، "ثلاثون" ، "أربعون" ، "خمسون" ، "ستون" ، "سبعون" ، _ "ثمانون "،" تسعون ") Nums3 = صفيف (" "،" مائة "،" مائتان "،" ثلاثمائة "،" أربعمائة "،" خمسمائة "،" ستمائة "،" سبعمائة "، _" ثمانمائة "،" تسعمائة ") Nums4 = صفيف (" "،" واحد "،" اثنان "،" ثلاثة "،" أربعة "،" خمسة "،" ستة "،" سبعة "،" ثمانية "،" تسعة ") Nums5 = Array (" عشرة "،" أحد عشر "،" اثنا عشر "،" ثلاثة عشر "،" أربعة عشر "، _" خمسة عشر "،" ستة عشر "،" سبعة عشر "،" ثمانية عشر "،" تسعة عشر ") إذا ن < = 0 ثم SUMWRITE = "صفر" إنهاء وظيفة النهاية إذا "قسّم الرقم إلى أرقام باستخدام الوظيفة المساعدة 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) 'تحقق من الملايين اختر Case decmil Case 1 mil_txt = Nums5 (mil ) & "ملايين "GoTo www Case 2 To 9 decmil_txt = Nums2 (decmil) End Select Case mil Case 1 mil_txt = Nums1 (mil) &" million "Case 2، 3، 4 mil_txt = Nums1 (mil) &" million "Case 5 To 20 mil_txt = Nums1 (mil) & "مليون" End Select www: sottys_txt = Nums3 (sottys) 'تحقق من الآلاف حدد الحالة dectys الحالة 1 tys_txt = Nums5 (tys) و "الآلاف" GoTo eee الحالة من 2 إلى 9 dectys_txt = Nums2 (dectys) إنهاء حدد حالة 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 And sottys <> 0 ثم sottys_txt = sottys_txt & "آلاف" eee: sot_txt = Nums3 (sot) 'تحقق من العشرات dec الحالة 1 ed_txt = Nums5 (ed) GoTo rrr الحالة 2 إلى 9 dec_txt = Nums2 (dec) End حدد ed_txt = Nums1 (ed) rrr: 'شكل الصف الأخير باستخدام SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & 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 ، ستبدو نتيجة الدالة مثل "خمسة وثلاثين روبل. XNUMX كوب ".

 

  • نسخة أكثر قوة من الوظيفة بالروبل والكوبيل باللغة / الإنجليزية من الوظيفة الإضافية PLEX
  • ما هي وحدات الماكرو ، ومكان إدراج رمز الماكرو ، وكيفية استخدامها

 

اترك تعليق