Nedenfor ser vi på et program i Excel VBA der deler et beløb op i sedler og mønter.
Situation:
Opret en regnearksændringshændelse. Kode tilføjet til regnearksændringshændelsen udføres af Excel VBA, når du ændrer en celle i et regneark.
1. Åbn Visual Basic Editor.
2. Dobbeltklik på Sheet1 (Sheet1) i Project Explorer.
3. Vælg regneark på rullelisten til venstre. Vælg Skift fra den højre rulleliste.
Tilføj følgende kodelinjer til regnearksændringshændelsen:
4. Angiv en variabel kaldet mængden af type Double og en variabel i af typen Integer.
Dim beløb som dobbelt, i som heltal
5. Regnearkændringshændelsen lytter til alle ændringer på Sheet1. Vi vil kun have Excel VBA til at gøre noget, hvis noget ændrer sig i celle B2. For at opnå dette skal du tilføje følgende kodelinje:
Hvis Target.Address = "$ B $ 2" Så
6. Vi initialiserer det variable beløb med værdien af celle B2.
beløb = område ("B2"). Værdi
7. Vi tømmer området med frekvenserne.
Område ("B5: B16"). Værdi = ""
8. Nu er det tid til at dele det indtastede beløb. Vi starter en For Next loop.
For i = 5 til 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 vil have Excel VBA til at gentage kodelinjerne i trin 10, så længe beløbet er større eller lig med celler (i, 1). Værdi.
Gør Mens beløb> = Celler (i, 1). Værdi
Sløjfe
10. Tilføj følgende kodelinjer til Do While Loop.
Celler (i, 2) .Værdi = Celler (i, 2) .Værdi + 1
beløb = beløb - Celler (i, 1). Værdi
Forklaring: så længe beløbet er større eller lig med celler (i, 1). Værdi, indeholder beløbet sedler/mønter af denne værdi. Som følge heraf øger Excel VBA hyppigheden af denne seddel/mønt (første linje) og trækker værdien af sedlen/mønten fra beløbet (anden linje). Denne proces vil blive gentaget, indtil mængden bliver mindre end celler (i, 1). Værdi. Dernæst øger Excel VBA i og går til den næste seddel/mønt for at se, hvor mange gange denne seddel/mønt passer i det resterende beløb. På denne måde bliver mængden af penge opdelt i regninger og mønter, indtil der ikke længere er penge tilbage til at dele.
11. Luk For Næste loop og glem ikke at lukke if -sætningen (begge uden for Do While Loop).
Næste i
Afslut Hvis
12. Test programmet.
Resultat:
Bemærk: Selvfølgelig indeholder det indtastede beløb ikke nødvendigvis hver seddel/mønt. Hvis beløbet ikke indeholder en bestemt seddel/mønt, bliver delen efter Do While aldrig sand for denne seddel/mønt, og Excel VBA går direkte til den næste seddel/mønt.