Sąskaitos ir monetos „Excel VBA“ - paprastos „Excel“ makrokomandos

Turinys

Žemiau apžvelgsime programą Excel VBA kad suskaldo tam tikrą pinigų sumą banknotai ir monetos.

Situacija:

Sukurkite darbalapio keitimo įvykį. Į darbalapio keitimo įvykį įtrauktas kodas bus vykdomas naudojant „Excel VBA“, kai pakeisite darbalapio langelį.

1. Atidarykite „Visual Basic“ redaktorių.

2. „Project Explorer“ dukart spustelėkite Sheet1 (Sheet1).

3. Iš kairiojo išskleidžiamojo sąrašo pasirinkite Darbo lapas. Iš dešiniojo išskleidžiamojo sąrašo pasirinkite Keisti.

Į darbalapio keitimo įvykį įtraukite šias kodo eilutes:

4. Paskelbkite kintamąjį, vadinamą dvigubo tipo kiekiu, ir kintamąjį i, kurio tipas yra sveikasis skaičius.

Sumažinti kaip dvigubą, o kaip sveiką skaičių

5. Darbo lapo keitimo įvykis išklauso visus 1 lapo pakeitimus. Mes tik norime, kad „Excel VBA“ ką nors padarytų, jei kažkas pasikeis B2 langelyje. Norėdami tai padaryti, pridėkite šią kodo eilutę:

Jei Target.Address = "$ B $ 2" Tada

6. Mes inicijuojame kintamąją sumą langelio B2 reikšme.

 suma = diapazonas („B2“). Vertė

7. Mes ištuštiname diapazoną dažniais.

Diapazonas ("B5: B16"). Vertė = ""

8. Dabar atėjo laikas padalinti įvestą pinigų sumą. Mes pradedame ciklą „Kitas“.

Jei i = nuo 5 iki 16

9. Mes naudosime „Do while Loop“ struktūrą. Tarp šių žodžių esantis kodas bus kartojamas tol, kol dalis po „Do Do“ yra teisinga. Norime, kad „Excel VBA“ pakartotų kodo eilutes 10 žingsnyje, kol suma yra didesnė arba lygi langeliams (i, 1).

Ar nors suma> = Ląstelės (i, 1). Vertė
Kilpa

10. Pridėkite šias kodo eilutes prie ciklo „Daryti kol“.

Ląstelės (i, 2). Vertė = ląstelės (i, 2). Vertė + 1
suma = suma - ląstelės (i, 1). Vertė

Paaiškinimas: jei suma yra didesnė arba lygi langeliams (i, 1). Vertė, sumoje yra šios vertės kupiūrų/monetų. Dėl to „Excel VBA“ padidina šios sąskaitos/monetos dažnumą (pirmoji eilutė) ir iš sumos (antroji eilutė) atima sąskaitos/monetos vertę. Šis procesas bus kartojamas tol, kol kiekis taps mažesnis nei ląstelės (i, 1). Tada „Excel VBA“ padidina i ir pereina prie kitos sąskaitos/monetos, kad pamatytų, kiek kartų ši sąskaita/moneta atitinka likusią sumą. Tokiu būdu pinigų suma bus padalyta į kupiūras ir monetas, kol nebeliks pinigų suskaidyti.

11. Uždarykite ciklą „Kitas“ ir nepamirškite uždaryti teiginio „if“ (abu už „Do while Loop“).

 Kitas I.
Baigti, jei

12. Išbandykite programą.

Rezultatas:

Pastaba: žinoma, įvestą sumą nebūtinai sudaro kiekviena sąskaita/moneta. Jei sumoje nėra tam tikros kupiūros/monetos, dalis po „Do while“ niekuomet netinka šiai vekseliui/monetai, o „Excel VBA“ eina tiesiai į kitą sąskaitą/monetą.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave