/ / Regninger og mynter i Excel VBA

Regninger og mynter i Excel VBA

Nedenfor ser vi på et program i Excel VBA som deler en mengde penger inn i regninger og mynter.

Situasjon:

Regninger og mynter i Excel VBA

Opprett et regnearkendringshendelse. Kode som er lagt til i regnearkets endringshendelse, blir utført av Excel VBA når du endrer en celle på et regneark.

1. Åpne Visual Basic Editor.

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

3. Velg regneark fra den nedtrekkbare listen. Velg Endre fra den høyre rullegardinlisten.

Regneark Endre Hendelse i Excel VBA

Legg til følgende kodelinjer i regnearkendringshendelsen:

4. Erklær en variabel som kalles mengden type Dobbel og en variabel i av typen Integer.

Dim amount As Double, i As Integer

5. Regnearkendringshendelsen lytter til alle endringene på Ark1. Vi vil bare at Excel VBA skal gjøre noe hvis noe endres i celle B2. For å oppnå dette legger du til følgende kodelinje:

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

6. Vi initialiserer det variable beløpet med verdien av celle B2.

amount = Range("B2").Value

7. Vi tømmer rekkevidden med frekvensene.

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

8. Nå er det på tide å splitte det innlagte beløpet. Vi starter en For Next-løkke.

For i = 5 To 16

9. Vi vil gjøre bruk av Do While Loop-strukturen. Kode plassert mellom disse ordene vil bli gjentatt så lenge delen etter Do While er sant. Vi vil at Excel VBA skal gjenta kodelinjene i trinn 10 så lenge beløpet er større eller lik Cells (i, 1) .value.

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

Loop

10. Legg til følgende kodelinjer i Do While Loop.

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

Forklaring: så lenge beløpet er større eller lik Cells (i, 1) .value, inneholder beløpet regninger / mynter av denne verdien. Som et resultat øker Excel VBA frekvensen av denne regningen / mynten (første linje) og trekker verdien av regningen / mynten fra beløp (andre linje). Denne prosessen vil bli gjentatt til mengden blir mindre enn Cells (i, 1) .value. Deretter øker Excel VBA i og går til neste regning / mynt for å se hvor mange ganger denne regningen / mynten passer i mengden igjen. På denne måten vil beløpet bli delt inn i regninger og mynter til det ikke er noen penger igjen å splitte lenger.

11. Lukk for neste sløyfe og ikke glem å lukke om setningen (begge utenfor Do While Loop).

   Next i
End if

12. Test programmet.

Resultat:

Resultater for regninger og mynter

Merk: Selvfølgelig inneholder det oppgitte beløpet ikke nødvendigvis hver regning / mynt. Hvis beløpet ikke inneholder en viss regning / mynt, blir delen etter Do While aldri sant for denne regningen / mynten, og Excel VBA går direkte til neste regning / mynt.

Les også: