/ / Sąskaitos ir monetos Excel VBA

Sąskaitos ir monetos "Excel VBA"

Žemiau apžvelgsime programą Excel VBA kuris padalija pinigų sumą į sąskaitos ir monetos.

Padėtis:

Sąskaitos ir monetos "Excel VBA"

Sukurkite darbo lapo keitimo įvykį. Kodą, pridėtą prie darbų sąrašo pakeitimo įvykio, atliks "Excel VBA", kai pakeisite ląstelę darbalapyje.

1. Atidarykite "Visual Basic" redaktorių.

2. Dukart spustelėkite Sheet1 (Sheet1) "Project Explorer".

3. Iš kairės išskleidžiamojo sąrašo pasirinkite Darbo lapą. Iš dešinės išskleidžiamojo sąrašo pasirinkite Keisti.

Darbalaukio keitimo įvykis programoje "Excel VBA"

Į darbų sąrašo keitimo įvykį pridėkite šias kodo eilutes:

4. Paskelbkite kintamąjį, pavadintą "Double" tipo dydžiu, ir "Integer" tipo kintamąjį i.

Dim amount As Double, i As Integer

5. Darbų sąrašo keitimo įvykis išklauso visus pakeitimus lape1. Mes tik norime, kad "Excel VBA" atliktų kažką, jei kažkas pasikeistų ląstelėje B2. Norėdami tai pasiekti, pridėkite šią kodo eilutę:

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

6. Kintamąją sumą inicijuojame su B2 elemento verte.

amount = Range("B2").Value

7. Mes ištuštiname diapazoną dažniais.

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

8. Dabar laikas suskaidyti įvestą pinigų sumą. Mes pradedame "Kitas kilpas".

For i = 5 To 16

9 Mes panaudosime "Do Loop" struktūrą. Kodas tarp šių žodžių bus pakartotas tol, kol dalis po "Do Un" yra teisinga. Mes norime, kad "Excel VBA" pakartotų kodo eilutes 10 žingsnyje, kol suma yra didesnė arba lygi ląstelėms (i, 1). Vertė.

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

Loop

10. Pridėkite šias kodo eilutes prie "Do Loop".

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

Paaiškinimas: jei suma yra didesnė arba lygi ląstelėms (i, 1). Vertė, suma yra šios vertės sąskaitų / monetų. Todėl "Excel VBA" didina šio sąskaitos / monetos (pirmosios eilutės) dažnį ir atimama iš sąskaitos / monetos vertė iš sumos (antroji eilutė). Šis procesas bus kartojamas, kol suma bus mažesnė nei ląstelių (i, 1). Vertė. Vėliau "Excel VBA" didinamas i ir eina į kitą sąskaitą / monetą, kad pamatytumėte, kiek kartų šis sąskaita / moneta tinka sumai, likusiam. Tokiu būdu pinigai bus padalijami į vekselius ir monetas, kol nebus likę pinigų, kad būtų suskaidyti.

11. Uždarykite "Next" kilpą ir nepamirškite uždaryti "if" teiginį (abu lauke "Lo Lo").

   Next i
End if

12. Patikrinkite programą.

Rezultatas:

Sąskaitos ir monetų rezultatas

Pastaba: žinoma, įvedama suma nebūtinai apima kiekvieną sąskaitą / monetą. Jei sumoje nėra tam tikro sąskaitos / monetos, dalis po "Do", nors niekada neatitinka šios sąskaitos / monetos, o "Excel VBA" eina tiesiai į kitą sąskaitą / monetą.

Taip pat perskaitykite: