Számlák és érmék Excel VBA-ban
Az alábbiakban egy programot nézünk be Excel VBA amely pénzt oszt el számlák és érmék.
Helyzet:
Munkafüzet-változási esemény létrehozása. A Munkalap változás eseményhez hozzáadott kódot az Excel VBA hajtja végre, amikor egy munkalapon lévő cellát módosít.
1. Nyissa meg a Visual Basic Editor alkalmazást.
2. Kattintson duplán a Sheet1 (Sheet1) lapra a Project Explorerben.
3. A bal oldali legördülő listából válassza ki a Munkalapot. Válassza a Módosítás lehetőséget a megfelelő legördülő listából.
Adja hozzá a következő kódsorokat a Munkalap változás eseményhez:
4. Adjon meg egy Double típusú változót és egy egész típusú Integer változót.
5. A Munkalap módosítása esemény figyeli az 1. lap összes módosítását. Csak azt akarjuk, hogy az Excel VBA tegyen valamit, ha valami megváltozik a B2 cellában. Ehhez a következő kódsor hozzáadásához:
6. Inicializáljuk a változó mennyiséget a B2 cellával.
7. A frekvenciatartományt kiürítjük.
Most már ideje megosztani a bevitt pénzmennyiséget, elindítjuk a For Next hurkot.
9. Használjuk a Do While Loop struktúrát. A szavak között elhelyezett kódot meg kell ismételni mindaddig, amíg a Do Do idő után a rész igaz. Azt akarjuk, hogy az Excel VBA ismételje meg a 10. sorban szereplő kódsorokat, amíg az összeg nagyobb vagy egyenlő a Cells (i, 1) értékkel.
Loop
10. Adja hozzá a következő kódsorokat a Do While Loop-hoz.
amount = amount - Cells(i, 1).Value
Magyarázat: mindaddig, amíg az összeg nagyobb vagy egyenlő a Cells (i, 1) értékkel, az összeg ebből az értékből számlákat / érméket tartalmaz. Ennek eredményeképpen az Excel VBA növeli a számla / érme gyakoriságát (első sor), és levonja a számla / érme értékét az összegből (második sor). Ezt a folyamatot meg kell ismételni, amíg az összeg kisebb lesz, mint a Cells (i, 1) érték. Ezután az Excel VBA megnöveli az i értéket, és a következő számlára / érmére megy, hogy megnézze, hányszor ez a számla / érme illeszkedik a maradék összeghez. Így a pénzösszegek számlákra és érmékre oszthatók, amíg már nincs több pénz a megosztásra.
11. Zárja be a For Next hurkot és ne felejtse el bezárni az if utasítás (mindkettő a Do While Loopon kívül).
End if
12. Vizsgálja meg a programot.
Eredmény:
Jegyzet: természetesen a beírt összeg nem feltétlenül tartalmaz minden számlát / érmét. Ha az összeg nem tartalmaz egy bizonyos számlát / érmét, az a rész, miután Do Do soha nem érhető el ez a számla / érme esetén, és az Excel VBA közvetlenül a következő számlára / érmére kerül.