Законопроекты и монеты в Excel VBA
Ниже мы рассмотрим программу в Excel VBA, которая расщепляет сумму денег на счета и монеты.
Ситуация:
Создание рабочего листа Изменить событие. Код добавлен в Worksheet Change Event будет выполняться Excel VBA при изменении ячейки на листе.
-
Откройте редактор Visual Basic.
-
Дважды щелкните на Sheet1 (Лист1) в окне Project Explorer.
-
Выберите рабочий лист из списка слева раскрывающегося списка. Выберите Изменить справа в раскрывающемся списке.
Добавьте следующие строки коды к планшетному Change Event:
-
Объявите переменную величину типа Double и переменную I типа Integer.
Dim amount As Double, i As Integer
-
Рабочий лист Change Event прослушивает все изменения на Лист1. Мы хотим только Excel VBA, чтобы сделать что-то, если что-то изменится в ячейке B2. Для достижения этой цели, добавьте следующую строку кода:
If Target.Address = "$B$2" Then
-
Мы инициализировать переменную величину со значением ячейки B2.
amount = Range("B2").Value
-
Мы опорожнить диапазон с частотами.
Range("B5:B16").Value = ""
-
Теперь пришло время разделить введенную сумму денег. Мы начинаем Для следующего цикла.
For i = 5 To 16
-
Мы будем использовать в Do While Loop структуры. Код помещается между этими словами будет повторяться до тех пор, как часть после Do While верно. Мы хотим, чтобы Excel VBA повторить строки кода на этапе 10 до тех пор, как сумма больше или равна Cells (я, 1) .value.
Do While amount >= Cells(i, 1).Value Loop
-
Добавьте следующие строки кода к Do While Loop.
Cells(i, 2).Value = Cells(i, 2).Value + 1 amount = amount - Cells(i, 1).Value
Объяснение: пока сумма больше или равна Cells (я, 1) .value, сумма содержит счета / монеты этого значения. В результате Excel VBA увеличивает частоту этого счета / монеты (первая строка) и вычитает значение счета / монеты из суммы (второй линии). Этот процесс будет повторяться до тех пор, пока сумма становится меньше, чем клетки (I, 1) .value. Далее, с шагом Excel VBA я и переходит к следующему вексельного / монеты, чтобы увидеть, сколько раз этот счет / монета припадки в сумме осталось. Таким образом, сумма будет разделена на счета и монеты до тех пор, пока не осталось денег, чтобы разделить больше.
-
Закройте Для следующего цикла и не забудьте закрыть, если заявление (как снаружи Do While Loop).
Next i End if
-
Проверьте программу.
Результат:
Примечание: конечно, введенная сумма не обязательно содержит все счета / монету. Если сумма не содержит определенный счет / монеты, часть после Do While никогда не станет правдой для этого счета / монеты и Excel VBA идет непосредственно к следующему вексельного / монете.