Excel VBA щодо помилки Відновіть далі
Поводження з помилками є дуже корисним та значущим механізмом для мов програмування, таких як контроль або запобігання помилок VBA, що є аспектом поводження з помилками, що означає вжиття ефективних та значних заходів у сценарії VBA, щоб уникнути виникнення повідомлення про помилку. Оператор Excel VBA On Error Resume Next Наступний ігнорує рядок коду, який викликає помилку, і продовжує або спрямовує виконання до наступного рядка, слідуючи за рядком, який спричинив помилку.
ПРИМІТКА: On Error Resume Наступний оператор не виправляє помилок виконання, це помилка, ігноруючи, де виконання програми VB буде продовжуватися з рядка, який спричинив помилку виконання.В основному, наступне відновлення помилки використовується тоді, коли ви хочете ігнорувати помилку & продовжувати або продовжувати виконання коду до наступної комірки.
Типи помилок у VBA
Нижче наведено різні типи помилок у VBA:
- Помилка синтаксису або помилка розбору.
- Помилка компіляції чи компіляції.
- Помилка виконання.
- Логічна помилка.
Вищезазначені помилки можна виправити за допомогою налагодження та «Про помилки» у коді. Помилку виконання можна запобігти за допомогою On Error Resume Next.
Помилка виконання VBA:
Перш ніж пояснити On On Error Resume Next, ви повинні знати про помилку виконання, коли неможливі математичні висловлювання або терміни, присутні в операторі, тоді ця помилка виконання виникає.
Приклади Excel VBA щодо помилки Відновіть далі
Нижче наведено різні приклади On On Error Resume Next у Excel VBA:
Ви можете завантажити цей файл VBA On Error Resume Next Excel тут - VBA On Error Resume Next Excel ШаблонVBA On Error Resume Next - Приклад №1
Тут помилка буде ігнорована, і виконання коду буде продовжено. У наведеному нижче прикладі 6 не може бути розділений на нуль, якщо ви запускаєте його, не вводячи оператор On Error Resume Next, тоді виникає нижченаведена помилка виконання.
Код:
Sub RUNTIME_1 () MsgBox 6/0 Закінчення Sub
Якщо On Error Resume Next введений у верхній частині коду після оператора SUB, він ігнорує помилку виконання та переходить до наступного оператора, що призводить до виходу 6/2 (поле з повідомленням Popup з результатом його).
Код:
Sub RUNTIME_2 () Про помилку Відновлення Далі MsgBox 6/0 MsgBox 6/2 End Sub
VBA On Error Resume Next - Приклад №2
Я можу використовувати On Error Resume Next в будь-якому місці коду від початку до кінця. У наведеному нижче прикладі я повинен зробити 3 розрахунки, тобто
9/3 =?
9/0 =?
9/2 =?
У вищезгаданому прикладі можна спостерігати другий обчислення, коли будь-яке число не можна розділити на нуль, тобто 9 не можна розділити на нуль на другому кроці. Припустимо, якщо ви запускаєте макрос, не вводячи операцію On Error Resume Next, тепер я можу виконувати код покроково за допомогою крок у або клавішу F8, щоб зрозуміти, як він працює.
Тепер я запускаю зазначений вище код, часто клацнувши по кроку Into option або клавіші F8, крок за кроком. Я просто скопіював вищевказаний код і почав його виконувати поетапно, для першого кроку розрахунку з'являється поле 3.
Код:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Кінець Sub
Коли я запускаю другий рядок коду, то нижче вказана помилка виконання виникає на другому кроці коду, де будь-яке число не можна розділити на нуль, тобто 9 не можна розділити на нуль на другому кроці.
Код:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Кінець Sub
Тепер, якщо я навіть натискаю на налагодження, він не може продовжувати далі, де він переведе мене до другого рядка коду (він виділяється жовтим кольором), де мені потрібно зробити виправлення. Отже, тут, якщо далі натиснути кнопку Step Into або клавішу F8, третій розрахунок у цьому коді не буде виконаний.
Щоб виправити цю помилку виконання або вирішити цю проблему, я повинен використовувати або виконувати оператор OnError Resume Next над другим кодом або на початку коду під підстанцією. щоб він пропустив цей рядок коду і перейшов до третього кроку коду та обчислив значення.
Код:
Sub RUNTIME_30 () MsgBox 9/3 on Error Resume Next MsgBox 9/0 MsgBox 9/2 End Sub
АБО
Sub RUNTIME_31 () Про помилку Відновлення Далі MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Кінець Sub
Тепер я додав до коду наступне твердження про помилку, де ви можете використовувати будь-який з вищевказаних кодів, якщо запустити його крок за кроком, ви отримаєте спливаюче вікно з двома повідомленнями, одне - вихідний перший код, а третій код розрахунок. Після помилки Відновлення Далі буде ігнорувати помилку виконання у другому коді та перейти до третього коду.
VBA On Error Resume Next - Приклад №2
Тепер ми побачимо Поєднання On Error Resume Next з Error GoTo 0. У наведеному нижче коді вона буде ігнорувати помилки, поки не дійде до оператора On Error GoTo 0 . Після операції On Error GoTo 0 код повертається назад або переходить до звичайної перевірки помилок і запускає очікувану помилку вперед.
Код:
Sub onError_Go_to_0_with_Resume_next () Про помилку Відновлення Наступне вбивство "C: TempFile.exe" Помилка GoTo 0 Діапазон ("A1"). Значення = 100 / "PETER" Кінець Під
Коли я запускаю вищевказаний код, він покаже помилку поділу, тобто невідповідність типу (числове значення не можна розділити на текст).
Тепер ви можете зберегти свою робочу книгу як "робочу книжку з підтримкою макросу Excel". Натиснувши кнопку "Зберегти", як у лівому куті робочого аркуша.
коли ви знову відкриєте цей файл excel, ви можете використовувати нижчезазначену клавішу швидкого доступу, тобто
Функція + Alt + F11 клавіша швидкого доступу допоможе вам отримати доступ до всіх створених макрокодів робочої книги. Функція + Alt + F8 клавіша швидкого виклику допоможе вам відкрити діалогове вікно "Макрос", яке містить усі назви макросів, де ви можете запустити певний макрокод на ваш вибір.
Що потрібно пам’ятати
- Помилка часу запуску буде мовчки захоплена і зберігається в глобальному об'єкті Err
- Після помилки Поновлення Далі зазвичай запобігає перерві у виконанні коду.
- Властивості об'єкта помилок (Err Object) автоматично очищаються, коли Resume Next використовується в процедурі обробки помилок
Рекомендовані статті
Це посібник до VBA On Error Resume Next. Тут ми обговорюємо різні типи помилок у VBA Excel разом з деякими практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -
- Повне керівництво по макросам VBA
- VBA DateDiff (приклади з шаблоном Excel)
- Як використовувати пошук цілі в VBA?
- Захисний лист VBA з синтаксисом
- VBA Environment