/ / Rēķini un monētas programmā Excel VBA

Viedokļi un monētas Excel VBA

Tālāk mēs apskatīsim programmu programmā Excel VBA kas sadala naudas summu rēķini un monētas.

Situācija:

Viedokļi un monētas Excel VBA

Izveidot darblapas maiņas notikumu. Kodu, kas pievienots darblapas izmaiņu notikumam, izpildīs Excel VBA, ja maināt šūnu darblapā.

1. Atveriet Visual Basic Editor.

2. Projekta Explorer divreiz noklikšķiniet uz Sheet1 (Sheet1).

3. Izvēlieties darblapu no kreisā nolaižamā saraksta. Labajā nolaižamajā sarakstā izvēlieties Mainīt.

Darblapas izmaiņu notikums programmā Excel VBA

Pievienojiet šādas darblapas maiņas notikuma koda rindiņas:

4. PaziĦojiet mainīgo, ko sauc par summas tipa Double un mainīgo i ar Integer skaitli.

Dim amount As Double, i As Integer

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

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

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

amount = Range("B2").Value

7. Mēs tukšs diapazons ar frekvencēm.

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

8. Tagad ir laiks sadalīt ievadīto naudas summu. Mēs sākam nākamo cilni.

For i = 5 To 16

9. Mēs izmantosim Do Loop struktūru. Kods, kas novietots starp šiem vārdiem, tiks atkārtots tik ilgi, kamēr daļa pēc tam, kad kaut kas ir taisnība. Mēs vēlamies, lai Excel VBA atkārtotu koda līnijas 10. solī tik ilgi, cik summa ir lielāka vai vienāda ar šūnām (i, 1). Vērtība.

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

Loop

10. Pievienojiet šādām koda līnijām Do Loop Loop.

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

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

11. Aizveriet For Next cilpu un neaizmirstiet aizvērt if aprakstu (gan ārpus Do Loop loģikas).

   Next i
End if

12. Pārbaudiet programmu.

Rezultāts:

Rēķinu un monētu 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 Do Kaut arī nekad neuzskata par taisnību attiecībā uz šo rēķinu / monētu, un Excel VBA iet tieši uz nākamo rēķinu / monētu.

Lasīt arī: