/ / Účty a mince v aplikaci Excel VBA

Účty a mince v aplikaci Excel VBA

Níže se podíváme na program v Excel VBA , která rozděluje částku peněz účty a mince.

Situace:

Účty a mince v aplikaci Excel VBA

Vytvořit událost Změna pracovního listu. Kód přidaný do události Změna pracovního listu bude proveden pomocí aplikace Excel VBA při změně buňky v listu.

1. Otevřete editor jazyka.

2. Poklepejte na položku List1 (list1) v aplikaci Průzkumník projektu.

3. V levé rozevírací nabídce vyberte pracovní list. V pravém rozevíracím seznamu vyberte možnost Změnit.

Změna události pracovního listu v aplikaci Excel VBA

Přidejte následující řádky kódu do události Změna pracovního listu:

4. Deklarujte proměnnou nazvanou množství typu Double a proměnnou i typu Integer.

Dim amount As Double, i As Integer

5. Změna události pracovního listu naslouchá všem změnám v listu1. Chceme, aby aplikace Excel VBA něco udělala, kdyby se něco v buňce B2 změnilo. Chcete-li to dosáhnout, přidejte následující kódový řádek:

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

6. Inicializujeme proměnnou částku s hodnotou buňky B2.

amount = Range("B2").Value

7. Vyprázdníme rozsah s frekvencemi.

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

8. Nyní je čas rozdělit zadané množství peněz. Začneme smyčku For Next.

For i = 5 To 16

9. Budeme využívat strukturu Do While Loop. Kód umístěný mezi těmito slovy se bude opakovat tak dlouho, dokud bude část po Do While pravdivá. Chceme, aby aplikace Excel VBA opakovala kódové řádky v kroku 10, pokud je částka větší nebo rovna buňkám (i, 1) .value.

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

Loop

10. Přidejte následující řádky kód do Do While smyčky.

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

Vysvětlení: pokud je částka větší nebo rovna buňkám (i, 1) .value, částka obsahuje účty / mince této hodnoty. V důsledku toho Excel VBA zvyšuje frekvenci tohoto účtu / mince (první řádek) a odečte hodnotu účtu / mince z množství (druhý řádek). Tento proces se bude opakovat, dokud se částka nestane menší než buňky (i, 1) .value. Následně Excel VBA inkrementuje i a přejde na další účet / minci a uvidí, kolikrát se tento účet / mince vejde do zbývající částky. Tímto způsobem bude částka peněz rozdělena na bankovky a mince, dokud nebudou peníze rozdělené.

11. Zavřete uzel For Next a nezapomeňte zavřít příkaz if (oba mimo příkazu Do While Loop).

   Next i
End if

12. Otestujte program.

Výsledek:

Výsledek účtů a mincí

Poznámka: zadaná částka samozřejmě nemusí nutně obsahovat každou bankovku / minci. Pokud částka neobsahuje určitou bankovku / minci, část za Do While se nikdy neplatí pro tento účet / minci a Excel VBA jde přímo na další účet / minci.

Také si přečtěte: