Купюри та монети в Excel VBA - Прості макроси Excel

Зміст

Нижче ми розглянемо програму в Excel VBA що розбиває певну суму грошей купюри та монети.

Ситуація:

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

1. Відкрийте редактор Visual Basic.

2. Двічі клацніть на Sheet1 (Sheet1) у Провіднику проектів.

3. Виберіть Робочий аркуш зі спадного списку ліворуч. Виберіть Змінити зі спадного списку праворуч.

Додайте такі рядки коду до події зміни робочого аркуша:

4. Оголосіть змінну під назвою кількість типу Double та змінну i типу Цілочисельне.

Затемнити кількість як подвійне, i як ціле число

5. Подія зміни робочого аркуша прослуховує всі зміни на аркуші1. Ми хочемо, щоб Excel VBA щось зробив, лише якщо щось зміниться у комірці В2. Щоб цього досягти, додайте наступний рядок коду:

Якщо Target.Address = "$ B $ 2" Тоді

6. Ми ініціалізуємо змінну суму значенням комірки В2.

 сума = Діапазон ("B2"). Значення

7. Випорожнюємо діапазон з частотами.

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

8. Настав час розділити введену суму грошей. Ми починаємо цикл For Next.

Для i = 5 до 16

9. Ми будемо використовувати структуру Do While Loop. Код, розміщений між цими словами, повторюватиметься до тих пір, поки частина після «До» є істинною. Ми хочемо, щоб Excel VBA повторював рядки коду на кроці 10, якщо сума більша або дорівнює клітинкам (i, 1). Значення.

Do While кількість> = Клітинки (i, 1). Значення
Петля

10. Додайте наведені нижче рядки коду до циклу Do While.

Клітинки (i, 2). Значення = комірки (i, 2). Значення + 1
кількість = кількість - Клітинки (i, 1). Значення

Пояснення: якщо сума більша або дорівнює клітинкам (i, 1). Значення, сума містить купюри/монети такої вартості. В результаті Excel VBA збільшує частоту цього купюри/монети (перший рядок) і віднімає вартість купюри/монети від суми (другий рядок). Цей процес буде повторюватися, поки кількість не стане меншою за клітинки (i, 1). Далі Excel VBA збільшує i та переходить до наступної купюри/монети, щоб побачити, скільки разів ця купюра/монета вписується у залишкову суму. Таким чином, сума грошей буде розділена на купюри та монети, поки більше не залишиться грошей для поділу.

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

 Далі i
Закінчити, якщо

12. Перевірте програму.

Результат:

Примітка: звичайно, введена сума не обов’язково містить усі купюри/монети. Якщо сума не містить певної купюри/монети, частина після Do While ніколи не стає істинною для цієї купюри/монети, а Excel VBA переходить безпосередньо до наступної купюри/монети.

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

wave wave wave wave wave