Az alábbiakban megnézzük a programot Excel VBA amely egy pénzösszeget oszt fel bankjegyek és érmék.
Helyzet:
Hozzon létre egy munkalap -változási eseményt. A munkalap módosítási eseményéhez hozzáadott kódot az Excel VBA hajtja végre, amikor módosít egy cellát a munkalapon.
1. Nyissa meg a Visual Basic Editor programot.
2. Kattintson duplán a Sheet1 (Sheet1) elemre a Project Explorerben.
3. Válassza a Munkalap lehetőséget a bal oldali legördülő listából. Válassza a Módosítás lehetőséget a jobb oldali legördülő listából.
Adja hozzá a következő kódsorokat a munkalap módosítási eseményéhez:
4. Nyújtson be egy Double típusú és az Integer típusú i változót.
Halványított összeg, mint kettős, és mint egész
5. A Munkalap módosítása esemény meghallgatja az 1. lapon található összes módosítást. Csak azt akarjuk, hogy az Excel VBA tegyen valamit, ha valami megváltozik a B2 cellában. Ennek eléréséhez adja hozzá a következő kód sort:
Ha Target.Address = "$ B $ 2" Akkor
6. A változó összeget inicializáljuk a B2 cella értékével.
összeg = Tartomány ("B2"). Érték
7. A frekvenciákkal kiürítjük a tartományt.
Tartomány ("B5: B16"). Érték = ""
8. Most itt az ideje, hogy ossza fel a beírt pénzösszeget. Elindítjuk a For Next ciklusát.
I = 5 és 16 között
9. A Do While Loop struktúrát fogjuk használni. A szavak közé helyezett kód addig ismétlődik, amíg a Do Do utáni rész igaz. Azt akarjuk, hogy az Excel VBA ismételje meg a kódsorokat a 10. lépésben, amíg az összeg nagyobb vagy egyenlő a cellák (i, 1) értékével.
Do while mennyiség> = Cella (i, 1). Érték
Hurok
10. Adja hozzá a következő kódsorokat a Do while ciklushoz.
Cella (i, 2). Érték = Cella (i, 2). Érték + 1
mennyiség = összeg - cellák (i, 1). Érték
Magyarázat: amíg az összeg nagyobb vagy egyenlő a cellák (i, 1) értékével, az összeg ilyen értékű bankjegyeket/érméket tartalmaz. Ennek eredményeként 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 addig kell ismételni, amíg az összeg kisebb lesz, mint a Cells (i, 1) érték. Ezután az Excel VBA növeli az i -t, és a következő számla/érme felé lép, hogy megnézze, hányszor fér el ez a számla/érme a fennmaradó összegben. Így a pénzösszeget bankjegyekre és érmékre osztják fel, amíg nem marad pénz a felosztásra.
11. Zárja be a Következő cikket, és ne felejtse el bezárni az if utasítást (mindkettő a Do while cikluson kívül).
Következő i
Vége, ha
12. Tesztelje a programot.
Eredmény:
Megjegyzés: természetesen a megadott összeg nem feltétlenül tartalmaz minden számlát/érmét. Ha az összeg nem tartalmaz egy bizonyos számlát/érmét, akkor a Do While utáni rész soha nem lesz igaz erre a bankjegyre/érmére, és az Excel VBA közvetlenül a következő számlára/érmére kerül.