Нижче ми розглянемо дві програми в 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 та протестуйте програму.
Результат: