Facturi și monede în Excel VBA - Macro Excel ușor

Cuprins

Mai jos vom analiza un program în Excel VBA care împarte o sumă de bani în bancnote și monede.

Situatie:

Creați un eveniment de schimbare a foii de lucru. Codul adăugat la evenimentul de modificare a foii de lucru va fi executat de Excel VBA atunci când schimbați o celulă pe o foaie de lucru.

1. Deschideți Editorul Visual Basic.

2. Faceți dublu clic pe Sheet1 (Sheet1) în Project Explorer.

3. Alegeți Foaie de lucru din lista derulantă din stânga. Alegeți Modificare din lista verticală dreaptă.

Adăugați următoarele linii de cod la evenimentul de modificare a foii de lucru:

4. Declarați o variabilă numită cantitate de tip Double și o variabilă i de tip Integer.

Valoarea este redusă ca dublă, iar ca număr întreg

5. Evenimentul Schimbare foaie de lucru ascultă toate modificările din Sheet1. Vrem ca Excel VBA să facă ceva numai dacă se schimbă ceva în celula B2. Pentru a realiza acest lucru, adăugați următoarea linie de cod:

Dacă Target.Address = "$ B $ 2" Atunci

6. Inițializăm suma variabilă cu valoarea celulei B2.

 sumă = Interval ("B2"). Valoare

7. Golim gama cu frecvențele.

Interval ("B5: B16"). Valoare = ""

8. Acum este timpul să împărțiți suma introdusă de bani. Începem o buclă For Next.

Pentru i = 5-16

9. Vom folosi structura Do While Loop. Codul plasat între aceste cuvinte va fi repetat atâta timp cât partea de după Do While este adevărată. Vrem ca Excel VBA să repete liniile de cod la pasul 10 atâta timp cât suma este mai mare sau egală cu celulele (i, 1) .value.

Suma Do While> = Celule (i, 1). Valoare
Buclă

10. Adăugați următoarele linii de cod la Bucla Do While.

Celule (i, 2). Valoare = Celule (i, 2). Valoare + 1
sumă = sumă - Celule (i, 1). Valoare

Explicație: atâta timp cât suma este mai mare sau egală cu valoarea celulelor (i, 1), valoarea conține facturi / monede de această valoare. Ca rezultat, Excel VBA crește frecvența acestei facturi / monede (prima linie) și scade valoarea facturii / monedei din valoare (a doua linie). Acest proces va fi repetat până când suma devine mai mică decât valoarea Cells (i, 1). Apoi, Excel VBA crește i și merge la următoarea bancnotă / monedă pentru a vedea de câte ori se încadrează această bancnotă / monedă în suma rămasă. În acest fel, suma de bani va fi împărțită în bancnote și monede până când nu vor mai rămâne bani de împărțit.

11. Închideți bucla For Next și nu uitați să închideți instrucțiunea if (ambele în afara buclei Do While Loop).

 Apoi eu
Încheie dacă

12. Testați programul.

Rezultat:

Notă: desigur, suma introdusă nu conține neapărat fiecare bancnotă / monedă. Dacă suma nu conține o anumită bancnotă / monedă, partea de după Do While nu devine niciodată adevărată pentru această bancnotă / monedă și Excel VBA merge direct la următoarea bancnotă / monedă.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave