Обробка помилок у Excel VBA - Прості макроси Excel

Зміст

Нижче ми розглянемо дві програми в Excel VBA. Одна програма просто ігнорує помилки. Інша програма продовжує виконання у вказаному рядку при натисканні на помилку.

Ситуація:

Обидві програми обчислюють квадратний корінь з чисел.

Квадратний корінь 1

Додайте наступні рядки коду до командної кнопки "Квадратний корінь 1".

1. Спочатку ми оголошуємо два об’єкти Range. Ми називаємо об'єкти діапазону rng і клітиною.

Dim rng As Range, клітинка As Range

2. Ми ініціалізуємо об'єкт Range з вибраним діапазоном.

Встановити rng = Вибір

3. Ми хочемо обчислити квадратний корінь кожної комірки у випадково вибраному діапазоні (цей діапазон може бути будь -якого розміру). У Excel VBA для цього можна використовувати цикл For Every Next. Додайте такі рядки коду:

Для кожної клітинки В rng
Наступна клітина

Примітка: тут rng і комірка вибираються випадковим чином, ви можете використовувати будь -які імена. Не забувайте посилатися на ці імена в решті коду.

4. Додайте наступний рядок коду до циклу.

Увімкнути Помилка Відновити Далі

5. Далі обчислюємо квадратний корінь із значення. У Excel VBA для цього можна використовувати функцію Sqr. Додайте наступний рядок коду до циклу.

cell.Value = Sqr (cell.Value)

6. Вийдіть із редактора Visual Basic та протестуйте програму.

Результат:

Висновок: Excel VBA ігнорував клітинки, що містять недійсні значення, такі як мінус -числа та текст. Без використання оператора "On Error Resume Next" ви отримаєте дві помилки. Будьте обережні, використовуйте лише оператор "On Error Resume Next", коли ви впевнені, що ігнорування помилок - це нормально.

Квадратний корінь 2

Додайте такі рядки коду до командної кнопки "Square Root 2".

1. Та сама програма, що і квадратний корінь 1, але замініть 'On Error Resume Next' на:

Помилка Перейти до InvalidValue:

Примітка: InvalidValue тут вибирається випадковим чином, ви можете використовувати будь -яке ім'я. Не забувайте посилатися на це ім’я в решті коду.

2. Поза циклом «Для кожного наступного» спочатку додайте такий рядок коду:

Вийти з підп

Без цього рядка буде виконано решту коду (код помилки), навіть якщо помилки немає!

3. Excel VBA продовжує виконання у рядку, що починається з "InvalidValue:" після натискання на помилку (не забудьте двокрапку). Додайте наступний рядок коду:

Недійсне значення:

4. Наразі ми зберігаємо простий код помилки. Ми відображаємо MsgBox з деяким текстом та адресою комірки, де сталася помилка.

MsgBox "не може обчислити квадратний корінь у комірці" & cell.Address

5. Додайте наступний рядок, щоб доручити Excel VBA відновити виконання після виконання коду помилки.

Відновити далі

6. Вийдіть із редактора Visual Basic та протестуйте програму.

Результат:

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

wave wave wave wave wave