Манипулатори на грешки за макроси на Excel

Манипулаторите на грешки ви позволяват да укажете какво се случва, когато се срещне грешка, докато вашият макрокод на Excel се изпълнява. Манипулаторите на грешки са редове, подобни на следните:

При грешка Отидете до MyError

Без манипулатори на грешки всяка грешка, която се появява във вашия код, ще подкани Excel да активира не толкова полезно съобщение за грешка, което обикновено няма да предаде ясно какво се е случило. Въпреки това, с помощта на манипулатори на грешки, можете да изберете да игнорирате грешката или да излезете грациозно от кода със собствено съобщение до потребителя.

Има три типа изявления за грешка:

  • При грешка GoTo SomeLabel: Кодът прескача към посочения етикет.

  • При грешка Възобновяване Напред: Грешката се игнорира и кодът се възобновява.

  • При грешка GoTo 0: VBA се връща към нормалното поведение при проверка на грешки.

При грешка GoTo SomeLabel

Понякога грешка във вашия код означава, че трябва грациозно да излезете от процедурата и да дадете на потребителите си ясно съобщение. В тези ситуации можете да използвате оператора On Error GoTo, за да кажете на Excel да премине към определен ред код.

Например, в следната малка част от кода казвате на Excel да раздели стойността в клетка A1 на стойността в клетка A2 и след това да постави отговора в клетка A3. Лесно. Какво може да се обърка?

Подмакрос1()
Диапазон("A3").Стойност = Диапазон("A1").Стойност / Диапазон("A2").Стойност
Край под

Както се оказва, две основни неща могат да се объркат. Ако клетка A2 съдържа 0, получавате грешка при деление на 0. Ако клетка A2 съдържа нечислова стойност, получавате грешка за несъответствие на типа.

За да избегнете неприятно съобщение за грешка, можете да кажете на Excel, че при грешка искате изпълнението на кода да премине към етикета, наречен MyExit.

В следващия код етикетът MyExit е последван от съобщение до потребителя, което дава приятелски съвет вместо неприятно съобщение за грешка. Също така имайте предвид подреда Exit Sub преди етикета MyExit, който гарантира, че кодът просто ще излезе, ако не се открие грешка:

Подмакрос1()
При грешка GoTo MyExit
Диапазон("A3").Стойност = Диапазон("A1").Стойност / Диапазон("A2").Стойност
Изход Sub
MyExit:
MsgBox "Моля, използвайте валидни ненулеви числа"
Край под

При грешка Продължете напред

Понякога искате Excel да игнорира грешка и просто да възобнови изпълнението на кода. В тези ситуации можете да използвате оператора On Error Resume Next.

Например, следната част от кода е предназначена да изтрие файл, наречен GhostFile.exe от директорията C:Temp. След като файлът бъде изтрит, хубаво поле за съобщение казва на потребителя, че файлът е изчезнал:

Подмакрос1()
Убийте "C:TempGhostFile.exe"
MsgBox "Файлът е изтрит."
Край под

Кодът работи чудесно, ако наистина има файл за изтриване. Но ако по някаква причина файлът, наречен GhostFile.exe, не съществува в устройството C: Temp, се извежда грешка.

В този случай не ви пука дали файлът не е там, защото така или иначе щяхте да го изтриете. Така че можете просто да игнорирате грешката и да продължите с кода.

С помощта на оператора On Error Resume Next, кодът се изпълнява независимо дали целевият файл съществува или не:

Подмакрос1()
При грешка Продължете напред
Убийте "C:TempGhostFile.exe"
MsgBox "Файлът е изтрит."
Край под

При грешка Отидете до 0

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

Тук първо искате да изтриете файл, наречен GhostFile.exe от директорията C:Temp. За да избегнете грешки, които могат да произтичат от факта, че целевият файл не съществува, използвате оператора On Error Resume Next. След това се опитвате да направите някаква подозрителна математика, като разделите 100/Майк:

Подмакрос1()
При грешка Продължете напред
Убийте "C:TempGhostFile.exe"
Диапазон("A3").Стойност = 100 / "Майк"
Край под

Изпълнението на тази част от кода би трябвало да генерира грешка поради размитата математика, но не. Защо? Защото последната инструкция, която дадохте на кода, беше On Error Resume Next. Всяка грешка, възникнала след този ред, ефективно се игнорира.

За да отстраните този проблем, можете да използвате израза On Error GoTo 0, за да възобновите нормалното поведение при проверка на грешки:

Подмакрос1()
При грешка Продължете напред
Убийте "C:TempGhostFile.exe"
При грешка Отидете до 0
Диапазон("A3").Стойност = 100 / "Майк"
Край под

Този код ще игнорира грешки до изявлението On Error GoTo 0. След това изявление кодът се връща към нормална проверка на грешки и задейства очакваната грешка, произтичаща от размитата математика.


Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирам Microsoft Word да отваря файлове в режим само за четене в Windows Microsoft Word отваря файлове в режим само за четене, което прави невъзможно редактирането им? Не се притеснявайте, методите са по-долу

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате грешки при отпечатването на неправилни документи на Microsoft Word Грешките при отпечатването на документи на Word с променени шрифтове, разхвърляни абзаци, липсващ текст или изгубено съдържание са доста чести. Въпреки това недейте

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Ако сте използвали писалката или маркера, за да рисувате върху слайдовете на PowerPoint по време на презентация, можете да запазите чертежите за следващата презентация или да ги изтриете, така че следващия път, когато го покажете, да започнете с чисти слайдове на PowerPoint. Следвайте тези инструкции, за да изтриете чертежи с писалка и маркери: Изтриване на линии една в […]

Съдържание на библиотеката за стилове в SharePoint 2010

Съдържание на библиотеката за стилове в SharePoint 2010

Библиотеката със стилове съдържа CSS файлове, файлове с разширяем език на стиловия език (XSL) и изображения, използвани от предварително дефинирани главни страници, оформления на страници и контроли в SharePoint 2010. За да намерите CSS файлове в библиотеката със стилове на сайт за публикуване: Изберете Действия на сайта→Преглед Цялото съдържание на сайта. Появява се съдържанието на сайта. Библиотеката Style се намира в […]

Форматирайте числата в хиляди и милиони в отчети на Excel

Форматирайте числата в хиляди и милиони в отчети на Excel

Не затрупвайте аудиторията си с огромни числа. В Microsoft Excel можете да подобрите четливостта на вашите табла за управление и отчети, като форматирате числата си така, че да се показват в хиляди или милиони.

Как да споделяте и следвате сайтове на SharePoint

Как да споделяте и следвате сайтове на SharePoint

Научете как да използвате инструменти за социални мрежи на SharePoint, които позволяват на индивиди и групи да общуват, да си сътрудничат, споделят и да се свързват.

Как да конвертирате дати в юлиански формати в Excel

Как да конвертирате дати в юлиански формати в Excel

Юлианските дати често се използват в производствени среди като времеви печат и бърза справка за партиден номер. Този тип кодиране на дата позволява на търговците на дребно, потребителите и обслужващите агенти да идентифицират кога е произведен продуктът и по този начин възрастта на продукта. Юлианските дати се използват и в програмирането, военните и астрономията. Различно […]

Как да създадете уеб приложение на Access

Как да създадете уеб приложение на Access

Можете да създадете уеб приложение в Access 2016. И така, какво всъщност е уеб приложение? Е, уеб означава, че е онлайн, а приложението е просто съкращение от „приложение“. Персонализирано уеб приложение е онлайн приложение за база данни, достъпно от облака с помощта на браузър. Вие създавате и поддържате уеб приложението в настолната версия […]

Лента за бързо стартиране в SharePoint 2010

Лента за бързо стартиране в SharePoint 2010

Повечето страници в SharePoint 2010 показват списък с връзки за навигация в лентата за бързо стартиране в лявата част на страницата. Лентата за бързо стартиране показва връзки към представено съдържание на сайта, като списъци, библиотеки, сайтове и страници за публикуване. Лентата за бързо стартиране включва две много важни връзки: Връзка към цялото съдържание на сайта: […]

Какво означават съобщенията за грешка на Solver в Excel?

Какво означават съобщенията за грешка на Solver в Excel?

За прости проблеми Solver в Excel обикновено бързо намира оптималните стойности на променливата Solver за целевата функция. Но в някои случаи Solver има проблеми с намирането на стойностите на променливата Solver, които оптимизират целевата функция. В тези случаи Solver обикновено показва съобщение или съобщение за грешка, което описва или обсъжда проблема, който […]