Функція DoEvents Excel VBA

Коли ми пишемо величезні коди, ми завжди потрапляємо в пастку VBA. Коли код великий, VBA потребує свого часу, щоб закінчити процес запуску та виконання. Що може зайняти час від хвилини до декількох хвилин. Це час, коли кожен стає роздратованим. І ми нічого не можемо зробити в цей період часу. Але щоб цього уникнути, ми маємо функцію в VBA під назвою DoEvents. За допомогою DoEvents ми можемо запускати код у фоновому режимі і одночасно можемо робити й інші види матеріалів. Ми не можемо працювати лише над іншим інструментом чи програмним забезпеченням, але також можемо перервати код або зупинитись між процесом виконання.

Як тільки ми введемо DoEvents в код, то, крім VBA, ми також будемо мати контроль над роботою, яку ми хочемо робити. Хороша річ у DoEvents - це відсутність синтаксису для запису. Ми можемо безпосередньо розмістити Doevents там, де хочемо взяти під контроль VBA і виконати завдання відповідно до наших потреб.

Як використовувати функцію DoEvents в Excel VBA?

Нижче наведено різні приклади використання функції DoEvents в excel за допомогою коду VBA.

Ви можете завантажити цей шаблон VBA DoEvents Excel тут - шаблон VBA DoEvents Excel

Excel VBA DoEvents - приклад №1

Хоча для виконання DoEvents нам потрібен величезний набір даних, де ми можемо побачити, як код переривається. Отже, ми будемо використовувати цикл, де цифри будуть застосовуватися до завершення коду. Для цього виконайте наступні кроки:

Крок 1. Відкрийте модуль у VBA на вкладці меню Вставка, як показано нижче.

Крок 2: Напишіть підпроцедуру VBA DoEvents або ми можемо вибрати будь-яке ім'я для визначення коду відповідно до наших потреб.

Код:

 Sub VBA_DoEvents () Закінчення Sub 

Крок 3: Тепер визначте змінну в будь-якому імені з типом даних Long. Мета розгляду типу даних як Довга полягає в тому, що ми будемо приймати будь-яку потрібну нам довжину даних, що неможливо, якщо розглядати цілість.

Код:

 Sub VBA_DoEvents () Dim A як довгий кінець Sub 

Крок 4: Тепер відкрийте цикл For-Next, куди ми поставимо умови.

Код:

 Sub VBA_DoEvents () Dim A As Long As Next A End A Sub 

Крок 5: Розгляньте діапазон на свій вибір, який можна побачити під час реалізації. Тут ми беремо діапазон від 1 до 2000 у визначеній змінній А.

Код:

 Sub VBA_DoEvents () Dim A As Long As A = 1 To 20000 Next A End Sub 

Крок 6: Після того, як ми визначимо діапазон чисел, виберемо діапазон комірок, де ми побачимо зміни чисел, які ми вибрали вище. Скажімо, діапазон комірок - від А1 до А5. Це може бути і одна клітина.

Код:

 Sub VBA_DoEvents () Dim A As Long As For A = 1 to 20000 ("A1: A5"). Значення = A Next A End Sub 

Крок 7: Тепер запустіть код, натиснувши на кнопку Відтворити, розташовану під панеллю меню.

Ми побачимо, код завершився друком чисел від 1 до 20000, але ми не змогли його зупинити.

Крок 8: Щоб отримати повний контроль над кодом, застосуйте DoEvents після умов циклу, як показано нижче.

Код:

 Sub VBA_DoEvents () Dim A As As Long For A = 1 To 20000 ("A1: A5"). Value = A DoEvents Далі A End Sub 

Крок 9: Тепер знову запустіть код. І в цей час ми намагаємось зупинити код, натиснувши кнопку зупинки, ми помітимо, що код зупиниться між процесами перед завершенням випробування 20000.

Excel VBA DoEvents - приклад №2

Існує ще один тип процесу реалізації DoEvents. Але для цього нам також знадобиться величезний код, як видно в прикладі-1. Для цього виконайте наступні кроки:

Крок 1: Запишіть підпроцедуру VBA DoEvents, як показано нижче.

Код:

 Sub VBA_DoEvents2 () Кінець Sub 

Крок 2. Безпосередньо відкрийте цикл For-next, не визначаючи змінну.

Код:

 Sub VBA_DoEvents2 () Для наступного кінця Sub 

Крок 3: Виберіть діапазон чисел, який ми побачимо, що він працює. Нехай діапазон буде від 1 до 20000 таким же, як приклад-1.

Код:

 Sub VBA_DoEvents2 () Для A = 1 До 20000 Наступний кінець Sub 

Крок 4: Тепер безпосередньо покладіть будь-яку роботу на вихід, скажімо, вихід такий, як показано нижче. А діапазон значень буде +1 фактичного значення.

Код:

 Sub VBA_DoEvents2 () для A = 1 до 20000 вихід = вихід + 1 наступний кінець підряд 

Крок 5: Тепер вибираємо діапазон, де ми хочемо бачити вихід. Нехай клітинка буде А1.

Код:

 Sub VBA_DoEvents2 () для A = 1 до 20000 вихід = вихід + 1 діапазон ("A1"). 

Крок 6: І нарешті ми поставимо DoEvents в кінці умови для циклу.

Код:

 Sub VBA_DoEvents2 () для A = 1 до 20000 вихід = вихід + 1 діапазон ("A1") Значення = Вихід DoEvents Наступний кінець Sub 

Крок 7: А потім запустіть код, натиснувши клавішу F5. Ми побачимо, ми можемо робити все, що завгодно, навіть коли код працює. Для демонстрації я вибрав комірки B1 і C1. Цифри, досягнуті лише в 4348, що набагато менше межі, яку ми встановили.

Крок 8: Якщо ми видалимо DoEvents і запустимо код, ми не зможемо нічого зробити, поки код не завершить свій процес. Побачимо і це.

Код:

 Sub VBA_DoEvents2 () для A = 1 до 20000 вихід = вихід + 1 діапазон ("A1"). 

Крок 9: Тепер запустіть код ще раз. Як ми бачимо, поки ми намагалися натиснути на Стоп, код не зупинився. А функція Play все ще була ВКЛ.

Плюси і мінуси Excel VBA DoEvents

  • Ми можемо працювати над будь-яким інструментом або файлом у фоновому режимі, поки код VBA буде працювати паралельно.
  • Використання DoEvents не перешкоджає нам виконувати роботу, яку ми хочемо, коли код працює.
  • Він перезаписує робочий аркуш або робочу книжку, коли ми переключаємось між різними аркушами чи робочою книжкою.
  • Код припиняється, коли ми записуємо або змінюємо комірку на мить, і ми не отримуємо повідомлення.

Що потрібно пам’ятати

  • Якщо ми робимо що-небудь без застосування DoEvents, то існує велика можливість, що код робить систему та файл замороженим. І що ми або відновимо файли, коли код буде повністю запущений, або обвалить файл декількома клацаннями.
  • Ми можемо бачити зміни в процесі, працюючи над іншими роботами одночасно.
  • Після того як ми заповнимо код, збережіть файл у форматі excel з підтримкою макросу, щоб уникнути втрати коду.
  • Спробуйте застосувати код у величезному та великому наборі кодування, там ми побачимо фактичну реалізацію та використання.

Рекомендовані статті

Це посібник з VBA DoEvents. Тут ми обговорюємо, як використовувати функцію DoEvents в Excel, використовуючи код VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. Як використовувати StrConv в Excel VBA?
  2. Перетворення чисел у текст в Excel (приклади)
  3. Функція VBA ByRef (приклади з шаблоном Excel)
  4. Excel SUMIFS з датами | Шаблон Excel

Категорія: