Rachunki i monety w Excel VBA - Easy Excel Macros

Spisie treści

Poniżej przyjrzymy się programowi w Excel VBA która dzieli kwotę pieniędzy na rachunki i monety.

Sytuacja:

Utwórz zdarzenie zmiany arkusza roboczego. Kod dodany do zdarzenia zmiany arkusza roboczego zostanie wykonany przez Excel VBA po zmianie komórki w arkuszu.

1. Otwórz Edytor Visual Basic.

2. Kliknij dwukrotnie Arkusz1 (Arkusz1) w Eksploratorze projektów.

3. Wybierz Arkusz roboczy z lewej listy rozwijanej. Wybierz Zmień z prawej listy rozwijanej.

Dodaj następujące wiersze kodu do zdarzenia zmiany arkusza roboczego:

4. Zadeklaruj zmienną o nazwie kwota typu Double oraz zmienną i typu Integer.

Ilość dim jako Double, i As Integer

5. Zdarzenie zmiany arkusza roboczego nasłuchuje wszystkich zmian w Arkuszu1. Chcemy, aby Excel VBA zrobił coś, jeśli coś zmieni się w komórce B2. Aby to osiągnąć, dodaj następującą linię kodu:

Jeśli Target.Address = "$B$2" Wtedy

6. Inicjujemy zmienną kwotę wartością komórki B2.

 kwota = Zakres("B2").Wartość

7. Opróżniamy zakres częstotliwościami.

Zakres("B5:B16").Wartość = ""

8. Teraz nadszedł czas, aby podzielić wprowadzoną kwotę. Rozpoczynamy pętlę For Next.

Dla i = 5 do 16

9. Wykorzystamy strukturę Do While Loop. Kod umieszczony między tymi słowami będzie powtarzany, o ile część po Do While będzie prawdziwa. Chcemy, aby Excel VBA powtarzał linie kodu w kroku 10, o ile kwota jest większa lub równa Cells(i,1).value.

Do While ilość >= Cells(i, 1)).Value
Pętla

10. Dodaj następujące wiersze kodu do pętli Do While.

Komórki(i, 2).Wartość = Komórki(i, 2).Wartość + 1
ilość = ilość - Komórki(i, 1).Wartość

Wyjaśnienie: dopóki kwota jest większa lub równa Cells(i,1).value, kwota zawiera banknoty/monety o tej wartości. W rezultacie Excel VBA zwiększa częstotliwość tego banknotu/monety (pierwszy wiersz) i odejmuje wartość banknotu/monety od kwoty (drugi wiersz). Proces ten będzie powtarzany do momentu, gdy kwota będzie mniejsza niż Cells(i,1).value. Następnie Excel VBA zwiększa i i przechodzi do następnego banknotu / monety, aby zobaczyć, ile razy ten banknot / moneta mieści się w pozostałej kwocie. W ten sposób kwota pieniędzy zostanie podzielona na banknoty i monety, dopóki nie będzie już pieniędzy do podziału.

11. Zamknij pętlę For Next i nie zapomnij zamknąć instrukcji if (obie poza pętlą Do While).

 Dalej ja
Zakończ, jeśli

12. Przetestuj program.

Wynik:

Uwaga: oczywiście wpisana kwota nie musi zawierać każdego banknotu/monety. Jeśli kwota nie zawiera określonego banknotu / monety, część po Do While nigdy nie staje się prawdziwa dla tego banknotu / monety, a Excel VBA przechodzi bezpośrednio do następnego banknotu / monety.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave