Обработка на грешки в Excel VBA - Лесни макроси на Excel

Съдържание

По -долу ще разгледаме две програми в Excel VBA. Една програма просто игнорира грешките. Другата програма продължава изпълнението на определен ред при натискане на грешка.

Ситуация:

И двете програми изчисляват квадратния корен от числа.

Квадратен корен 1

Добавете следните кодови редове към командния бутон „Square Root 1“.

1. Първо, декларираме два Range обекта. Ние наричаме Range обекти rng и cell.

Dim rng As Range, клетка As Range

2. Инициализираме Range обекта rng с избрания диапазон.

Задайте 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. Същата програма като Square Root 1, но заменете „On Error Resume Next“ с:

При грешка GoTo InvalidValue:

Забележка: InvalidValue е произволно избран тук, можете да използвате всяко име. Не забравяйте да се позовавате на това име в останалата част от кода.

2. Извън цикъла За всеки следващ, първо добавете следния код:

Изход от Sub

Без този ред останалата част от кода (код на грешка) ще бъде изпълнена, дори ако няма грешка!

3. Excel VBA продължава изпълнението на реда, започващ с „InvalidValue:“ при натискане на грешка (не забравяйте двоеточие). Добавете следния код:

Невалидна стойност:

4. Засега запазваме кода на грешката си прост. Показваме MsgBox с текст и адреса на клетката, в която е възникнала грешката.

MsgBox "не може да изчисли квадратния корен в клетката" & cell.Address

5. Добавете следния ред, за да инструктирате Excel VBA да възобнови изпълнението след изпълнение на кода за грешка.

Възобновяване Напред

6. Излезте от редактора на Visual Basic и тествайте програмата.

Резултат:

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave