Räkningar och mynt i Excel VBA - enkla Excel -makron

Innehållsförteckning

Nedan kommer vi att titta på ett program i Excel VBA som delar upp en summa pengar i sedlar och mynt.

Situation:

Skapa en ändringshändelse för kalkylblad. Kod som läggs till i kalkylbladets ändringshändelse körs av Excel VBA när du ändrar en cell i ett kalkylblad.

1. Öppna Visual Basic Editor.

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

3. Välj kalkylblad från den vänstra listrutan. Välj Ändra från den högra listrutan.

Lägg till följande kodrader i ändringshändelsen för kalkylblad:

4. Deklarera en variabel som kallas mängd dubbel och variabel i av typ heltal.

Dimbelopp som dubbel, i som heltal

5. Arbetsbladets ändringshändelse lyssnar på alla ändringar på Sheet1. Vi vill bara att Excel VBA ska göra något om något ändras i cell B2. För att uppnå detta, lägg till följande kodrad:

Om Target.Address = "$ B $ 2" Då

6. Vi initierar det variabla beloppet med värdet på cell B2.

 mängd = intervall ("B2"). Värde

7. Vi tömmer intervallet med frekvenserna.

Område ("B5: B16"). Värde = ""

8. Nu är det dags att dela in det angivna beloppet. Vi startar en For Next loop.

För i = 5 till 16

9. Vi kommer att använda strukturen Do While Loop. Kod som placeras mellan dessa ord kommer att upprepas så länge delen efter Do While är sann. Vi vill att Excel VBA ska upprepa kodraderna i steg 10 så länge beloppet är större eller lika med celler (i, 1). Värde.

Gör medan -mängd> = Celler (i, 1) .Värde
Slinga

10. Lägg till följande kodrader i Do While Loop.

Celler (i, 2) .Värde = Celler (i, 2) .Värde + 1
mängd = mängd - Celler (i, 1) .Värde

Förklaring: så länge beloppet är större eller lika med celler (i, 1). Värde innehåller beloppet sedlar/mynt av detta värde. Som ett resultat ökar Excel VBA frekvensen för denna sedel/mynt (första raden) och subtraherar värdet på sedeln/myntet från beloppet (andra raden). Denna process kommer att upprepas tills mängden blir mindre än celler (i, 1). Värde. Därefter ökar Excel VBA i och går till nästa sedel/mynt för att se hur många gånger denna sedel/mynt passar i det belopp som återstår. På så sätt kommer mängden pengar att delas upp i sedlar och mynt tills det inte finns några pengar kvar att dela längre.

11. Stäng For Next -slingan och glöm inte att stänga if -satsen (båda utanför Do While Loop).

 Nästa i
Avsluta om

12. Testa programmet.

Resultat:

Obs! Naturligtvis innehåller det angivna beloppet inte nödvändigtvis varje sedel/mynt. Om beloppet inte innehåller en viss sedel/mynt blir delen efter Do While aldrig sann för denna sedel/mynt och Excel VBA går direkt till nästa sedel/mynt.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave