/ / Setelit ja kolikot Excel VBA: ssa

Laskut ja kolikot Excel VBA: ssa

Alla tarkastelemme ohjelmaa Excel VBA joka jakaa rahan määrän laskuja ja kolikoita.

Tilanne:

Laskut ja kolikot Excel VBA: ssa

Luo laskentataulukko Muuta tapahtumaa. Excel VBA suorittaa Excel-VBA-tietueeseen lisätyn koodin lisäämisen koodiksi, kun muutat solua laskentataulukossa.

1. Avaa Visual Basic -editori.

2. Kaksoisnapsauta Project Explorerissa Sheet1 (Sheet1) -painiketta.

3. Valitse vasemmalla olevasta avattavasta luettelosta Worksheet. Valitse Muuta oikealta avattavasta luettelosta.

Työkirja Muuta tapahtumaa Excel VBA: ssa

Lisää seuraavat koodilinjat Worksheet Muuta tapahtumaan:

4. Ilmoita muuttujan nimeltään Double-tyyppi ja tyypin Integer-muuttuja i.

Dim amount As Double, i As Integer

5. Muistokerroin muistaa kaikki Sheet1-muutokset. Haluamme vain, että Excel VBA tekee jotain, jos jotain muuttuu solussa B2. Tämän saavuttamiseksi lisää seuraava koodirivi:

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

6. Alustetaan muuttuva määrä solun B2 arvoon.

amount = Range("B2").Value

7. Tyhjennä alue taajuuksilla.

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

8. Nyt on aika jakaa annettu rahasumma. Aloitamme For Next-silmukalle.

For i = 5 To 16

9. Käytämme Do While Loop -rakennetta. Näiden sanojen välissä oleva koodi toistetaan niin kauan kuin osa Do Forin jälkeen on totta. Haluamme, että Excel VBA toistaa koodirivit vaiheessa 10 niin kauan kuin summa on suurempi tai yhtä suuri kuin Cells (i, 1) .arvo.

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

Loop

10. Lisää seuraavat koodirivit Do While Loopiin.

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

Selitys: kunhan summa on suurempi tai yhtä suuri kuin solut (i, 1) .arvo, määrä sisältää tämän arvon laskut / kolikot. Tämän seurauksena Excel VBA nostaa laskun / kolikon taajuutta (ensimmäinen rivi) ja vähentää laskun / kolikon arvon summasta (toinen rivi). Tämä prosessi toistetaan, kunnes määrä pienenee Cells (i, 1) .arvo. Seuraavaksi Excel VBA kasvattaa i ja siirtyy seuraavaan laskuun / kolikkoon nähdäksesi kuinka monta kertaa tämä lasku / kolikko sopii jäljellä olevaan määrään. Näin rahan määrä jaetaan laskuihin ja kolikoihin, kunnes rahaa ei enää jakaa.

11. Sulje Next-silmukka ja älä unohda jos lausuntoa (sekä Do While Loopin ulkopuolella).

   Next i
End if

12. Testaa ohjelma.

Tulos:

Laskut ja kolikot Tulos

Huomautus: luonnollisesti annettu määrä ei välttämättä sisällä kaikkia laskuja / kolikkoja. Jos määrä ei sisällä tietyn laskun / kolikon, osa sen jälkeen, kun Do While ei ole koskaan totta tämän laskun / kolikon kohdalla ja Excel VBA siirtyy suoraan seuraavaan laskuun / kolikkoon.

Lue myös: