Alla tarkastelemme ohjelmaa Excel VBA joka jakaa summan rahaa seteleitä ja kolikoita .
Tilanne:
Excel-kaava kahden luvun välisen prosentuaalisen eron laskemiseksi
Luo laskentataulukon muutostapahtuma. Laskentataulukon muutostapahtumaan lisätyn koodin suorittaa Excel VBA, kun muutat laskentataulukon solua.
1. Avaa Visual Basic Editor .
2. Kaksoisnapsauta Sheet1 (Sheet1) Project Explorerissa.
3. Valitse Laskentataulukko vasemmasta avattavasta luettelosta. Valitse oikeasta avattavasta luettelosta Muuta.
miten pyöristetään lähimpään 5: een Excelissä
Lisää seuraavat koodirivit laskentataulukon muutostapahtumaan:
4. Ilmoita muuttuja nimeltä määrä Double ja muuttuja i, kokonaistyyppi.
Ei mitäänmääräKuten Kaksinkertainen, iKuten Kokonaisluku5. Laskentataulukon muutostapahtuma kuuntelee kaikkia Sheet1: n muutoksia. Haluamme, että Excel VBA tekee jotain vain, jos jotain muuttuu solussa B2. Tämän saavuttamiseksi lisää seuraava koodirivi:
JosTarget.Address = '$ B $ 2'Sitten6. Alustamme muuttuvan määrän solun B2 arvolla.
määrä = alue ('B2'). Arvo7. Tyhjennämme alueen taajuuksilla.
Alue ('B5: B16'). Arvo = ''8. Nyt on aika jakaa syötetty rahasumma. Aloitamme For For Next -silmukan.
Varteni = 5Vastaanottaja169. Hyödynnämme Tee Silmukalla rakenne. Näiden sanojen väliin asetettu koodi toistetaan niin kauan kuin Do While -kohdan jälkeinen osa on totta. Haluamme, että Excel VBA toistaa koodirivit vaiheessa 10 niin kauan kuin määrä on suurempi tai yhtä suuri kuin Solut (i, 1).
Tehdä Sillä aikaamäärä> = Solut (i, 1). ArvoSilmukka
10. Lisää seuraavat koodirivit Do While Loop -sarjaan.
Solut (i, 2) Arvo = Solut (i, 2) Arvo + 1määrä = määrä - Solut (i, 1). Arvo
Selitys: niin kauan kuin määrä on suurempi tai yhtä suuri kuin Solut (i, 1). Arvo, summa sisältää tämän arvon seteleitä/kolikoita. Tämän seurauksena Excel VBA lisää tämän setelin/kolikon taajuutta (ensimmäinen rivi) ja vähentää setelin/kolikon arvon summasta (toinen rivi). Tämä prosessi toistetaan, kunnes määrä on pienempi kuin solut (i, 1). Seuraavaksi Excel VBA lisää i: tä ja siirtyy seuraavaan laskuun/kolikkoon nähdäkseen, kuinka monta kertaa tämä seteli/kolikko mahtuu jäljellä olevaan summaan. Tällä tavalla rahat jaetaan seteleiksi ja kolikoiksi, kunnes rahat jakautuvat.
11. Sulje For For Next -silmukka ja muista sulkea if -lause (molemmat Do Do Loop -silmukan ulkopuolella).
SeuraavaiLoppu jos
12. Testaa ohjelma.
excel-sarakkeen kirjain-numero-muunnin
Tulos:
Huomaa: syötetty summa ei tietenkään välttämättä sisällä kaikkia laskuja/kolikoita. Jos summa ei sisällä tiettyä seteliä/kolikkoa, Do While -kohdan jälkeinen osa ei koskaan toteudu tälle setelille/kolikolle ja Excel VBA siirtyy suoraan seuraavaan laskuun/kolikkoon.
Siirry seuraavaan lukuun: Array