Помилка VBA

Помилка VBA On Error - це простий метод поводження з несподіваними винятками в Excel Macros. Відомо, що ми не можемо писати код без помилок. Іноді написання великого коду може призвести до помилки навіть під час складання. Щоб уникнути подібної ситуації, ми додаємо повідомлення про помилку, яке замість того, щоб дати нам правильну відповідь або код помилки, покаже нам повідомлення з кодом помилки. Це могло б виглядати так, що ми отримали результат нашого розрахунку, але саме код помилки отримає відбиток.

Як використовувати Excel VBA при повідомленні про помилку в Excel?

У VBA є 3 способи помилки. Давайте розберемося різними способами на деяких прикладах.

Приклад №1

Перший тип помилки - це помилка компіляції коду, яка виникає, коли код є недекларованим або неможливим змінним. Щоб зрозуміти більше, ми скористаємося простим математичним виразом ділення. Для цього перейдіть до меню Вставка VBA та виберіть Модуль, як показано нижче.

Тепер відкрийте підкатегорію та додайте будь-яке ім’я. Як ми використовуємо On Error, ми так і назвали.

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

Тепер визначте будь-які 2 або 3 цілих числа. Тут ми приймаємо X і Y як цілі.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілий кінець Sub 

Тепер, як обговорювалося вище, ми обчислимо математичний вираз поділу. Для X ми поставимо символ у Numerator і поділимо його 0. І Y буде 20/2, що є повними числами.

 Sub OnError () Dim X як цілий, Y як цілий X = тест / 0 Y = 20/2 кінець 

Тепер запустіть код за допомогою клавіші F5 або натиснувши кнопку відтворення, як показано нижче. Ми отримаємо помилку виконання 6, яка показує помилку "Текст над числом".

Тепер, щоб усунути цю помилку, ми додамо один рядок On Error Resume Next перед тим, як написати математичний код. Він перескочить код помилки, але ми не зможемо побачити результат другого математичного коду. Це приховує повідомлення про помилку, лише якщо різні кодові рядки, як показано нижче. Тепер спробуйте також запустити код.

 Sub OnError () Dim X як ціла кількість, Y як ціла кількість помилок. Відновити наступний X = тест / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

Тепер, щоб усунути цю помилку, ми додамо один рядок On Error Resume Next перед тим, як написати математичний код. Він перескочить код помилки, але ми не зможемо побачити результат другого математичного коду. Це приховує повідомлення про помилку, лише якщо різні кодові рядки, як показано нижче. Тепер спробуйте також запустити код.

Приклад №2

У цьому прикладі ми розглянемо той математичний поділ, який дає нескінченний результат, але при кодуванні це буде результат # DIV / 0. Щоб продемонструвати це, ми розглянемо ще одне ціле число Z разом з X і Y в підкатегорії, як показано нижче.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілий кінець Sub 

Тепер обкадруйте всі цілі числа X, Y і Z з математичним виразом ділення і для його друку використовуйте функцію MsgBox в VBA результату кожного цілого числа.

Нижче для Integer X ми розділили 10 на 0, 20 на 2 та 30 на 4.

 Sub OnError () Dim X як Integer, Y як Integer, Z як Integer X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Тепер запустіть код за допомогою клавіші F5 або вручну, як показано нижче.

Як ми бачимо на наведеному вище скріншоті помилка 11 Виконання часу, що означає, що помилка пов'язана з числом. Тепер для подолання цього додайте один рядок On Error Resume Next перед математичним виразом, як показано нижче.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілісний при помилці Відновити наступний X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Тепер, якщо ми запустимо код, ми отримаємо нуль для першого цілого числа X, а для Y і Z отримаємо відповідні відповіді поділу, як показано нижче.

Приклад №3

Другий тип помилок спостерігається, коли ми вводимо неправильний введення даних у код. Для цього ми розглянемо 3 цілі числа X, Y і Z, відкривши підкатегорію в VBA, як показано нижче.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілий кінець Sub 

Тепер також розглянемо той самий математичний поділ, який ми бачили у наведеному вище прикладі.

 Sub OnError () Dim X як Integer, Y як Integer, Z як Integer X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Якщо ми запустимо код, то отримаємо те саме повідомлення про помилку 11.

Тепер, щоб усунути цю помилку, використовуйте текст On Error GoTo зі словом "" Результат пропустити повідомлення про помилку та отримати результат, який працює добре, як показано нижче.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілісний при помилці GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Тепер запустіть код ще раз. Ми отримаємо той же результат, що і в попередньому прикладі.

На помилку GoTo ZResult допомагає нам безпосередньо перейти згадане ціле число точки результату, як це було зроблено для цілого Z.

Приклад №4

У третьому типі помилки, коли ми запускаємо код і VBA не в змозі зрозуміти рядок коду. Це можна зробити за допомогою коду On Error Resume Next разом з MsgBox Err.Number . Розглянемо ті самі дані, що і в наведених вище прикладах. Ми знову побачимо ті самі 3 цілі числа X, Y і Z, як показано нижче.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілий кінець Sub 

А для друку результату результату дозвольте поле для повідомлень для всіх цілих чисел як вихід.

 Sub OnError () Dim X як Integer, Y як Integer, Z як Integer X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Тепер, якщо ми запустимо повний код, то отримаємо повідомлення про помилку математичної помилки 11.

Тепер для усунення цієї помилки ми будемо використовувати On Error Resume Next.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілісний при помилці Відновити наступний X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

І запустіть код. Це дасть корисний результат у дійсному математичному рядку, як показано нижче.

Тепер далі додайте рядок коду ZResult перед математичним виразом Z цілого поділу і додайте рядок коду MsgBox Err.Number в кінці коду, як показано нижче.

 Sub OnError () Dim X як цілий, Y як цілий, Z як цілісний при помилці Відновити наступний X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End Sub 

Тепер запустіть код за допомогою клавіші F5 або натиснувши кнопку відтворення, як показано нижче.

Як ми бачимо на наведених вище скріншотах. Перше поле повідомлень має 0, що перевищує неправильний математичний вираз. 2- е і 3 мають результат ділення Y і Z цілих чисел. І останнє поле повідомлення має код помилки часу запуску 11, який, ймовірно, код помилки у виразах поділу X цілого числа.

Плюси помилки VBA на помилці

  • Ми можемо обчислити будь-яку математичну формулу, навіть якщо вона неправильна.
  • Для більшої структури кодування, де є шанси чи помилка, використання цих методів може дати правильний результат навіть серед рядків кодів.
  • Це дає кращий результат порівняно з результатом, отриманим за допомогою звичайних обчислень.

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

  • Завжди зберігайте файл у файлі Excel з підтримкою макросів, щоб ми могли багато разів використати створений код VBA.
  • Завжди збирайте письмовий код перед тим, як застосовувати будь-яку вимогу excel.
  • При необхідності призначте написаний код будь-якій кнопці, щоб ми могли швидко натиснути кнопку і запустити код.

Ви можете завантажити шаблон VBA On Error Excel тут - Шаблон VBA On Error Excel

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

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

  1. Як використовувати функцію VBA TRIM?
  2. Формат чисел у VBA
  3. Керівництво по Excel VBA Робіть цикл
  4. Як використовувати функцію пошуку VBA?

Категорія: