/ / Rachunki i monety w Excel VBA

Rachunki i monety w Excelu VBA

Poniżej przyjrzymy się programowi w Excel VBA który dzieli pieniądze na rachunki i monety.

Sytuacja:

Rachunki i monety w Excelu VBA

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 projektu.

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

Arkusz Zmień wydarzenie w programie Excel VBA

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

4. Zadeklaruj zmienną zwaną wielkością typu Double oraz zmienną i typu Integer.

Dim amount As Double, i As Integer

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

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

6. Inicjujemy zmienną ilość z wartością komórki B2.

amount = Range("B2").Value

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

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

8. Teraz czas na podzielenie wprowadzonej kwoty. Rozpoczynamy pętlę For Next.

For i = 5 To 16

9. Wykorzystamy strukturę Do While Loop. Kod umieszczony pomiędzy tymi słowami będzie powtarzany tak długo, jak długo po części do Do While będzie prawdziwy. Chcemy, aby Excel VBA powtórzył linie kodu w kroku 10, o ile ilość jest większa lub równa komórkom (i, 1) .value.

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

Loop

10. Dodaj następujące linie kodu do pętli Do Podczas.

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

Wyjaśnienie: tak długo, jak ilość jest większa lub równa komórkom (i, 1). wartość, kwota zawiera rachunki / monety o tej wartości. W rezultacie Excel VBA zwiększa częstotliwość tego rachunku / monety (pierwsza linia) i odejmuje wartość rachunku / monety od kwoty (druga linia). Proces ten będzie powtarzany do momentu, w którym ilość stanie się mniejsza niż komórki (i, 1). Wartość. Następnie Excel VBA zwiększa wartość i przechodzi do następnego rachunku / monety, aby sprawdzić, ile razy ten banknot / moneta pasuje do pozostałej kwoty. W ten sposób kwota pieniędzy zostanie podzielona na rachunki i monety, dopóki nie będzie już pieniędzy na rozdzielenie.

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

   Next i
End if

12. Sprawdź program.

Wynik:

Rachunki i monety Wynik

Uwaga: oczywiście wprowadzona kwota niekoniecznie zawiera wszystkie rachunki / monety. Jeśli kwota nie zawiera określonego rachunku / monety, część po Do nigdy nie staje się prawdą dla tego rachunku / monety i Excel VBA idzie bezpośrednio do następnego rachunku / monety.

Przeczytaj również: