/ / Regninger og mønter i Excel VBA

Regninger og mønter i Excel VBA

Nedenfor vil vi se på et program i Excel VBA der opdeler en mængde penge i regninger og mønter.

Situation:

Regninger og mønter i Excel VBA

Opret et regnearkændringsbegivenhed. Kode føjet til regnearkets ændringshændelse udføres af Excel VBA, når du ændrer en celle på et regneark.

1. Åbn Visual Basic Editor.

2. Dobbeltklik på Sheet1 (Sheet1) i Project Explorer.

3. Vælg Arbejdsark fra den venstre rullemenu. Vælg Skift fra den højre rulleliste.

Arbejdsark Skift begivenhed i Excel VBA

Tilføj følgende kodelinjer til regnearkets ændringshændelse:

4. Erklær en variabel kaldet mængde type Double og en variabel i af typen Integer.

Dim amount As Double, i As Integer

5. Regnearkets ændringshændelse lytter til alle ændringer på ark1. Vi vil kun have Excel VBA til at gøre noget, hvis der sker noget i celle B2. For at opnå dette skal du tilføje følgende kode linje:

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

6. Vi initialiserer det variable beløb med værdien af ​​celle B2.

amount = Range("B2").Value

7. Vi tømmer rækkevidden med frekvenserne.

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

8. Nu er det tid til at opdele det indtastede beløb. Vi starter en For Next-løkke.

For i = 5 To 16

9. Vi vil gøre brug af Do While Loop strukturen. Kode placeret mellem disse ord vil blive gentaget, så længe delen efter Do While er sand. Vi ønsker, at Excel VBA gentager kodelinjerne i trin 10, så længe mængden er større eller lig med celler (i, 1) .value.

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

Loop

10. Tilføj følgende kodelinjer til Do While Loop.

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

Forklaring: så længe mængden er større eller lig med celler (i, 1) .value, indeholder mængden regninger / mønter af denne værdi. Som et resultat øger Excel VBA frekvensen af ​​denne regning / mønten (første linje) og trækker værdien af ​​regningen / mønten fra beløb (anden linje). Denne proces gentages, indtil mængden bliver mindre end celler (i, 1) .value. Derefter øges Excel VBA i og går til næste regning / mønten for at se, hvor mange gange denne regning / mønt passer i mængden tilbage. På den måde vil mængden af ​​penge blive opdelt i regninger og mønter, indtil der ikke er nogen penge tilbage til at splitte længere.

11. Luk For For Next-sløjfen og glem ikke at lukke if-sætningen (begge uden for Do While Loop).

   Next i
End if

12. Test programmet.

Resultat:

Regninger og mønter Resultat

Bemærk: Selvfølgelig indeholder det indtastede beløb ikke nødvendigvis hver regning / mønt. Hvis beløbet ikke indeholder en bestemt regning / mønten, bliver delen efter Do While aldrig rigtig for denne regning / mønten, og Excel VBA går direkte til næste regning / mønten.

Læs også: