300 ตัวอย่าง

ตั๋วเงินและเหรียญ

Bills Coins

ด้านล่างเราจะดูโปรแกรมใน Excel VBA ที่แบ่งจำนวนเงินออกเป็น ธนบัตรและเหรียญ .





สถานการณ์:

โดยใช้ฟังก์ชันอัตราใน excel

ตั๋วเงินและเหรียญใน Excel VBA





สร้างกิจกรรมการเปลี่ยนแปลงเวิร์กชีต โค้ดที่เพิ่มลงในเวิร์กชีต Change Event จะดำเนินการโดย Excel VBA เมื่อคุณเปลี่ยนเซลล์บนเวิร์กชีต

1. เปิด โปรแกรมแก้ไข Visual Basic .



2. ดับเบิลคลิกที่ Sheet1 (Sheet1) ใน Project Explorer

3. เลือก แผ่นงาน จากรายการดรอปดาวน์ด้านซ้าย เลือก เปลี่ยน จากรายการดรอปดาวน์ด้านขวา

เหตุการณ์การเปลี่ยนแปลงแผ่นงานใน Excel VBA

วิธีค้นหารายการที่ซ้ำกันในสองคอลัมน์ใน excel

เพิ่มบรรทัดรหัสต่อไปนี้ในเหตุการณ์การเปลี่ยนแปลงเวิร์กชีต:

4. ประกาศตัวแปรที่เรียกว่าจำนวนชนิด Double และตัวแปร i ชนิด Integer

ไม่มีจำนวนเนื่องจาก สองเท่า, ผมเนื่องจาก จำนวนเต็ม

5. เหตุการณ์การเปลี่ยนแปลงเวิร์กชีตจะรับฟังการเปลี่ยนแปลงทั้งหมดในชีต 1 เราต้องการให้ Excel VBA ทำอะไรบางอย่างหากมีการเปลี่ยนแปลงในเซลล์ B2 เพื่อให้บรรลุสิ่งนี้ ให้เพิ่มบรรทัดรหัสต่อไปนี้:

ถ้าTarget.Address = '$B'แล้ว

6. เราเริ่มต้นจำนวนตัวแปรด้วยค่าของเซลล์ B2

จำนวน = ช่วง ('B2'). ค่า

7. เราล้างช่วงด้วยความถี่

ช่วง('B5:B16').ค่า = ''

8. ถึงเวลาแบ่งจำนวนเงินที่ป้อน เราเริ่มลูป For Next

สำหรับผม = 5ถึง16

9. เราจะใช้ประโยชน์จาก ทำในขณะที่ห่วง โครงสร้าง. รหัสที่วางไว้ระหว่างคำเหล่านี้จะถูกทำซ้ำตราบเท่าที่ส่วนหลัง Do while เป็นจริง เราต้องการให้ Excel VBA ทำซ้ำโค้ดบรรทัดในขั้นตอนที่ 10 ตราบใดที่จำนวนมากกว่าหรือเท่ากับ Cells(i,1).value

ทำ ในขณะที่จำนวน >= เซลล์ (i, 1).Value

ห่วง

10. เพิ่มโค้ดต่อไปนี้ลงใน Do while Loop

เซลล์ (i, 2).Value = เซลล์ (i, 2).Value + 1
จำนวน = จำนวน - เซลล์ (i, 1).Value

คำอธิบาย: ตราบใดที่จำนวนเงินมากกว่าหรือเท่ากับ Cells(i,1).value จำนวนนั้นจะมีบิล/เหรียญของมูลค่านี้ ด้วยเหตุนี้ Excel VBA จะเพิ่มความถี่ของบิล/เหรียญนี้ (บรรทัดแรก) และลบมูลค่าของบิล/เหรียญออกจากจำนวนเงิน (บรรทัดที่สอง) กระบวนการนี้จะถูกทำซ้ำจนกว่าจำนวนจะน้อยกว่า Cells(i,1).value ถัดไป Excel VBA จะเพิ่ม i และไปที่บิล/เหรียญถัดไปเพื่อดูว่าบิล/เหรียญนี้พอดีกับจำนวนเงินที่เหลืออยู่กี่ครั้ง ด้วยวิธีนี้จำนวนเงินจะถูกแบ่งออกเป็นตั๋วเงินและเหรียญจนไม่มีเงินเหลือให้แยกอีกต่อไป

11. ปิดลูป For Next และอย่าลืมปิดคำสั่ง if (ทั้งนอกลูป Do while)

ต่อไปผม
จบ ถ้า

12. ทดสอบโปรแกรม

สูตร excel จะนับถ้าเซลล์มี

ผลลัพธ์:

บิลและเหรียญผล

หมายเหตุ: แน่นอนว่าจำนวนเงินที่ป้อนไม่จำเป็นต้องมีทุกบิล/เหรียญ หากจำนวนเงินไม่มีบิล/เหรียญ ส่วนที่หลังจาก Do while จะไม่เป็นจริงสำหรับบิล/เหรียญนี้ และ Excel VBA จะส่งตรงไปยังบิล/เหรียญถัดไป

5/6 สำเร็จ! เรียนรู้เพิ่มเติมเกี่ยวกับกิจกรรม >
ไปที่บทถัดไป: Array



^