Счета и монеты в Excel VBA - макросы Easy Excel

Содержание

Ниже мы рассмотрим программу на Excel VBA который разбивает сумму денег на купюры и монеты.

Ситуация:

Создайте событие изменения рабочего листа. Код, добавленный в событие изменения рабочего листа, будет выполняться Excel VBA при изменении ячейки на листе.

1. Откройте редактор Visual Basic.

2. Дважды щелкните Sheet1 (Sheet1) в проводнике проекта.

3. Выберите Рабочий лист в раскрывающемся списке слева. В правом раскрывающемся списке выберите Изменить.

Добавьте следующие строки кода в событие изменения рабочего листа:

4. Объявите переменную с именем amount типа Double и переменную i типа Integer.

Dim amount As Double, i As Integer

5. Событие изменения рабочего листа отслеживает все изменения на листе Sheet1. Нам нужно, чтобы Excel VBA что-то делал, только если что-то изменится в ячейке B2. Для этого добавьте следующую строку кода:

Если Target.Address = "$ B $ 2", то

6. Инициализируем переменную сумму значением ячейки B2.

 количество = Диапазон ("B2"). Значение

7. Очищаем диапазон с частотами.

Диапазон ("B5: B16"). Значение = ""

8. Теперь пора разделить введенную сумму денег. Мы запускаем цикл For Next.

Для i = от 5 до 16

9. Мы будем использовать структуру Do While Loop. Код, помещенный между этими словами, будет повторяться до тех пор, пока часть после Do While будет истинной. Мы хотим, чтобы Excel VBA повторял строки кода на шаге 10, пока сумма больше или равна Cells (i, 1) .value.

Сделать пока количество> = Cells (i, 1) .Value
Петля

10. Добавьте следующие строки кода в цикл «Выполнить, пока».

Cells (i, 2) .Value = Cells (i, 2) .Value + 1
количество = количество - Ячейки (i, 1) .Значение

Объяснение: пока сумма больше или равна Cells (i, 1) .value, сумма содержит купюры / монеты этого значения. В результате Excel VBA увеличивает частоту этой банкноты / монеты (первая строка) и вычитает стоимость банкноты / монеты из суммы (вторая строка). Этот процесс будет повторяться до тех пор, пока сумма не станет меньше, чем Cells (i, 1) .value. Затем Excel VBA увеличивает i и переходит к следующей купюре / монете, чтобы узнать, сколько раз эта купюра / монета умещается в оставшейся сумме. Таким образом, сумма денег будет разделена на купюры и монеты до тех пор, пока не останется денег для разделения.

11. Закройте цикл For Next и не забудьте закрыть оператор if (оба вне цикла Do While).

 Далее я
Конец, если

12. Протестируйте программу.

Результат:

Примечание: конечно, введенная сумма не обязательно содержит каждую купюру / монету. Если сумма не содержит определенную купюру / монету, часть после Do While никогда не становится истинной для этой купюры / монеты, и Excel VBA переходит непосредственно к следующей купюре / монете.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave