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

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

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

สถานการณ์:

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

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

1. เปิดตัวแก้ไข Visual Basic

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

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

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

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

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

Dim amount As Double, i As Integer

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

If Target.Address = "$B$2" Then

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

amount = Range("B2").Value

7. เราปล่อยช่วงที่มีความถี่ออก

Range("B5:B16").Value = ""

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

For i = 5 To 16

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

Do While amount >= Cells(i, 1).Value

Loop

10. เพิ่มบรรทัดรหัสต่อไปนี้ใน Do While Loop

Cells(i, 2).Value = Cells(i, 2).Value + 1
amount = amount - Cells(i, 1).Value

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

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

   Next i
End if

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

ผล:

ผลของเหรียญและเหรียญ

บันทึก: แน่นอนจำนวนเงินที่ป้อนไม่จำเป็นต้องมีการเรียกเก็บเงิน / เหรียญทุกครั้ง หากจำนวนเงินไม่มีบิล / เหรียญบางส่วนส่วนที่หลังทำในขณะที่ไม่เป็นจริงสำหรับการเรียกเก็บเงิน / เหรียญนี้และ Excel VBA ไปที่บิล / เหรียญต่อไป

อ่านเพิ่มเติมได้ที่: