Účty a mince v programe Excel VBA - ľahké makrá programu Excel

Obsah

Nižšie sa pozrieme na program v Excel VBA do ktorého sa rozdelí množstvo peňazí bankovky a mince.

Situácia:

Vytvorte udalosť zmeny pracovného hárka. Kód pridaný do udalosti zmeny pracovného hárka vykoná Excel VBA, keď zmeníte bunku v hárku.

1. Otvorte editor jazyka Visual Basic.

2. Dvakrát kliknite na Sheet1 (Sheet1) v programe Project Explorer.

3. V ľavom rozbaľovacom zozname vyberte Pracovný list. V pravom rozbaľovacom zozname vyberte položku Zmeniť.

Do udalosti zmeny pracovného hárka pridajte nasledujúce riadky kódu:

4. Deklarujte premennú nazývanú množstvo typu Double a premennú i typu Integer.

Dim množstvo ako dvojnásobok, aj ako celé číslo

5. Udalosť zmeny pracovného hárka počúva všetky zmeny v hárku1. Chceme, aby Excel VBA niečo urobil, ak sa niečo zmení v bunke B2. Aby ste to dosiahli, pridajte nasledujúci riadok kódu:

Ak Target.Address = "$ B $ 2" Potom

6. Inicializujeme premennú sumu s hodnotou bunky B2.

 množstvo = rozsah („B2“). Hodnota

7. Vyprázdňujeme rozsah s frekvenciami.

Rozsah ("B5: B16"). Hodnota = ""

8. Teraz je čas rozdeliť zadanú sumu peňazí. Začíname slučku For Next.

Pre i = 5 až 16

9. Využijeme štruktúru Do While Loop. Kód umiestnený medzi týmito slovami sa bude opakovať, pokiaľ bude časť po Do While pravdivá. Chceme, aby Excel VBA opakoval riadky kódu v kroku 10, pokiaľ je množstvo väčšie alebo sa rovná bunkám (i, 1) .hodnota.

Vykonajte množstvo> = Bunky (i, 1). Hodnota
Slučka

10. Pridajte nasledujúce riadky kódu do slučky Do While.

Bunky (i, 2). Hodnota = bunky (i, 2). Hodnota + 1
množstvo = množstvo - Bunky (i, 1). Hodnota

Vysvetlenie: pokiaľ je čiastka väčšia alebo sa rovná bunkám (i, 1). Hodnota, suma obsahuje bankovky/mince tejto hodnoty. Výsledkom je, že Excel VBA zvýši frekvenciu tejto zmenky/mince (prvý riadok) a od hodnoty (druhý riadok) odpočíta hodnotu bankovky/mince. Tento proces sa bude opakovať, kým sa množstvo nestane menším ako hodnota buniek (i, 1). Ďalej, Excel VBA zvýši i a prejde na ďalšiu bankovku/mincu, aby zistil, koľkokrát sa táto bankovka/minca zmestí do zostávajúcej sumy. Týmto spôsobom bude množstvo peňazí rozdelené na bankovky a mince, kým už nebudú žiadne peniaze na rozdelenie.

11. Zatvorte slučku For Next a nezabudnite uzavrieť príkaz if (obaja mimo slučky Do While).

 Ďalej i
Koniec Ak

12. Otestujte program.

Výsledok:

Poznámka: zadaná suma samozrejme nemusí nevyhnutne obsahovať každú bankovku/mincu. Ak čiastka neobsahuje určitú bankovku/mincu, časť po Do While sa pri tejto bankovke/minci nikdy nestane pravdou a Excel VBA prejde priamo na ďalšiu bankovku/coin.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave