/ / Účty a mince v programe Excel VBA

Účty a mince v programe Excel VBA

Nižšie sa pozrieme na program v sekcii Excel VBA ktorá rozdelí množstvo peňazí do účty a mince.

situácie:

Účty a mince v programe Excel VBA

Vytvorte udalosť zmeny pracovného hárka. Kód, ktorý bol pridaný k udalosti zmeny pracovného hárka, bude vykonaný programom Excel VBA pri zmene bunky na pracovnom hárku.

1. Otvorte Editor jazyka.

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

3. V ľavom rozbaľovacom zozname vyberte položku Pracovný hárok. Vyberte položku Zmeniť v pravom rozbaľovacom zozname.

Zmeniť udalosť pracovného hárka v programe Excel VBA

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

4. Vyhlásime premennú nazývanú množstvo typu Double a premenná i typu Integer.

Dim amount As Double, i As Integer

5. Udalosť zmeny pracovného hárku počúva všetky zmeny v hárku 1. Chceme, aby program Excel VBA urobil niečo, ak sa v bunke B2 zmení niečo. Ak to chcete dosiahnuť, pridajte nasledujúci riadok kódu:

If Target.Address = "$B$2" Then

6. Inicializujeme premennú sumu na hodnotu bunky B2.

amount = Range("B2").Value

7. Vyprázdňujeme interval s frekvenciami.

Range("B5:B16").Value = ""

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

For i = 5 To 16

9. Budeme využívať štruktúru Do While Loop. Kód umiestnený medzi týmito slovami sa bude opakovať tak dlho, kým časť po Do While je pravdivá. Chceme, aby program Excel VBA zopakoval riadky kódu v kroku 10, pokiaľ je suma väčšia alebo rovná bunkám (i, 1) .value.

Do While amount >= Cells(i, 1).Value

Loop

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

Cells(i, 2).Value = Cells(i, 2).Value + 1
amount = amount - Cells(i, 1).Value

vysvetlenie: ak je množstvo väčšie alebo rovné bunkám (i, 1) .value, suma obsahuje účty / mince tejto hodnoty. V dôsledku toho Excel VBA zvyšuje frekvenciu tohto účtu / mince (prvý riadok) a odpočíta hodnotu účtu / mince od množstva (druhý riadok). Tento proces sa bude opakovať, kým sa množstvo nestane menšie ako bunky (i, 1) .value. Následne Excel VBA inkrementuje i a prejde na ďalšiu bankovku / mincu a uvidí, koľkokrát sa tento účet / minca zapadá do zostávajúcej sumy. Týmto spôsobom sa suma peňazí rozdelí na účty a mince, kým už nebudú peniaze ponechané na rozdelenie.

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

   Next i
End if

12. Otestujte program.

výsledok:

Výsledok účtov a mincí

Poznámka: zadaná čiastka samozrejme nemusí obsahovať všetky účty / mince. Ak suma neobsahuje určitú účtenku / mincu, časť za Do sa nikdy neplatí pre tento účet / mincu a program Excel VBA prejde priamo na nasledujúci účet / mincu.

Tiež si prečítajte: