สุมาในความอยากรู้อยากเห็น

เนื้อหา

ด้านล่างนี้คุณจะพบกับฟังก์ชันที่ผู้ใช้กำหนดเองสำเร็จรูปใน VBA ที่แปลตัวเลขใดๆ จาก 0 ไป 9 ในรูปแบบข้อความ กล่าวคือ ในปริมาณในคำพูด ก่อนใช้งาน ต้องเพิ่มฟังก์ชันนี้ในหนังสือของคุณ สำหรับสิ่งนี้:

  1. กดแป้นพิมพ์ลัด ALT + F11เพื่อเปิด Visual Basic Editor
  2. เพิ่มโมดูลเปล่าใหม่ผ่านเมนู แทรก – โมดูล
  3. คัดลอกและวางข้อความของฟังก์ชันนี้ที่นั่น:
ฟังก์ชัน SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "one", "two", "three", "four", "five", "six", "เจ็ด", "แปด", "เก้า") Nums2 = Array("", "สิบ", "ยี่สิบ", "สามสิบ", "สี่สิบ", "ห้าสิบ", "หกสิบ", "เจ็ดสิบ", _ "แปดสิบ ", "เก้าสิบ") Nums3 = Array("", "หนึ่งร้อย", "สองร้อย", "สามร้อย", "สี่ร้อย", "ห้าร้อย", "หกร้อย", "เจ็ดร้อย", _ " แปดร้อย", "เก้าร้อย") Nums4 = Array("", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า ") Nums5 = Array("สิบ" , "สิบเอ็ด", "สิบสอง", "สิบสาม", "สิบสี่", _ "สิบห้า", "สิบหก", "สิบเจ็ด", "สิบแปด", "สิบเก้า") ถ้า n < = 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) 'ตรวจสอบล้าน Select Case decmil Case 1 mil_txt = Nums5(mil ) & "ล้าน" ไปที่ www กรณี 2 ถึง 9 decmil_txt = Nums2(decmil) จบ เลือก เลือก กรณี mil กรณี 1 mil_txt = Nums1(mil) & "ล้าน " กรณี 2, 3, 4 mil_txt = Nums1(mil) & "ล้าน " กรณีที่ 5 ถึง 20 mil_txt = Nums1(mil) & "millions " End Select www: sottys_txt = Nums3(sottys) ' กาเครื่องหมายหลักพัน เลือก Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " GoTo eee กรณีที่ 2 ถึง 9 dectys_txt = Nums2(dectys) จบ เลือก Select Case tys Case 0 ถ้า dectys > 0 จากนั้น tys_txt = Nums4(tys) & "thousands" Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys) & "thousands " กรณีที่ 5 ถึง 9 tys_txt = Nums4(tys) & "thousands " End Select ถ้า dectys = 0 และ tys = 0 และ sottys <> 0 จากนั้น sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) ' กาเครื่องหมายสิบ Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select 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 Function ' helper function แยกจากจำนวนหลัก Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) สิ้นสุดฟังก์ชัน    

บันทึกไฟล์ (ถ้าคุณมี Excel 2007 หรือ 2010 ประเภทไฟล์จะต้องเปิดใช้งานมาโคร เช่น รูปแบบ xlsm!) และกลับสู่ Excel ตอนนี้คุณสามารถแทรกฟังก์ชันที่สร้างลงในเซลล์ใดๆ ของเวิร์กชีตได้ตามปกติ – ผ่านตัวช่วยสร้างฟังก์ชัน (button fx ในแถบสูตร หมวดหมู่ กำหนดโดยผู้ใช้) หรือเพียงพิมพ์ลงในเซลล์ด้วยตนเองและระบุเซลล์ด้วยจำนวนเงินเป็นอาร์กิวเมนต์:

หากคุณต้องการเพิ่มเพนนีในข้อความที่ได้รับ คุณสามารถใช้โครงสร้างที่ซับซ้อนกว่านี้เล็กน้อย:

 u3d ผลรวมในการเขียน (A3) & ” ถู “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”cop” 

u3d ผลรวมในการเขียน (A3) & ” ถู “&TEXT((A3-INT(A100))*00;”XNUMX″)&”ตำรวจ”

ตัวอย่างเช่น สำหรับหมายเลข 35,15 ผลลัพธ์ของฟังก์ชันจะมีลักษณะเป็น “สามสิบห้ารูเบิล 15 ค็อป”

 

  • ฟังก์ชั่นเวอร์ชันที่ทรงพลังยิ่งขึ้นพร้อม rubles และ kopecks ใน / อังกฤษจากโปรแกรมเสริม PLEX
  • มาโครคืออะไร ใส่โค้ดมาโครได้ที่ไหน ใช้งานอย่างไร

 

เขียนความเห็น