Rēķini un monētas programmā Excel VBA - vienkārši Excel makro

Satura rādītājs

Zemāk mēs apskatīsim programmu Excel VBA kas sadala naudas summu banknotes un monētas.

Situācija:

Izveidojiet darblapas maiņas notikumu. Darblapas maiņas notikumam pievienoto kodu izpildīs Excel VBA, mainot darblapas šūnu.

1. Atveriet Visual Basic redaktoru.

2. Veiciet dubultklikšķi uz Sheet1 (Sheet1) Project Explorer.

3. Kreisajā nolaižamajā sarakstā izvēlieties Darblapa. Labajā nolaižamajā sarakstā izvēlieties Mainīt.

Darblapas maiņas notikumam pievienojiet šādas koda rindiņas:

4. Deklarējiet mainīgo, ko sauc par Double tipa daudzumu, un mainīgo i, kura tips ir Integer.

Dim summa As Double, i As Integer

5. Darblapas maiņas notikums uzklausa visas 1. lapas izmaiņas. Mēs vēlamies, lai Excel VBA kaut ko darītu, ja šūnā B2 kaut kas mainās. Lai to panāktu, pievienojiet šādu koda rindu:

Ja Target.Address = "$ B $ 2" Tad

6. Mēs inicializējam mainīgo daudzumu ar šūnas B2 vērtību.

 summa = diapazons ("B2"). Vērtība

7. Mēs iztukšojam diapazonu ar frekvencēm.

Diapazons ("B5: B16"). Vērtība = ""

8. Tagad ir pienācis laiks sadalīt ievadīto naudas summu. Mēs sākam cilpu Nākotne.

Attiecībā uz i = 5 līdz 16

9. Mēs izmantosim Do Do Loop struktūru. Kods, kas ievietots starp šiem vārdiem, tiks atkārtots, kamēr daļa pēc Do Do ir patiesa. Mēs vēlamies, lai Excel VBA atkārtotu koda rindiņas 10. solī, kamēr summa ir lielāka vai vienāda ar šūnām (i, 1). Vērtība.

Darīt Kaut daudzums> = Šūnas (i, 1). Vērtība
Cilpa

10. Pievienojiet cilnei Do Do Loop šādas koda rindiņas.

Šūnas (i, 2). Vērtība = šūnas (i, 2). Vērtība + 1
summa = summa - šūnas (i, 1). Vērtība

Paskaidrojums: ja summa ir lielāka vai vienāda ar šūnām (i, 1). Vērtība, summa satur šīs vērtības rēķinus/monētas. Rezultātā Excel VBA palielina šī rēķina/monētas biežumu (pirmā rinda) un atņem rēķina/monētas vērtību no summas (otrā rinda). Šis process tiks atkārtots, līdz daudzums kļūs mazāks par šūnu (i, 1) vērtību. Pēc tam Excel VBA palielina i un pāriet uz nākamo rēķinu/monētu, lai redzētu, cik reižu šis rēķins/monēta ietilpst atlikušajā summā. Tādā veidā naudas summa tiks sadalīta banknotēs un monētās, līdz vairs nebūs naudas sadalīšanai.

11. Aizveriet cilni Nākotnei un neaizmirstiet aizvērt paziņojumu if (abi ārpus cikla Do do).

 Tālāk i
Beigt, ja

12. Pārbaudiet programmu.

Rezultāts:

Piezīme: protams, ievadītā summa ne vienmēr satur katru rēķinu/monētu. Ja summa nesatur noteiktu rēķinu/monētu, daļa pēc darīšanas nekad neatbilst šim rēķinam/monētai, un Excel VBA pāriet tieši uz nākamo rēķinu/monētu.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave