Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2020-12-08 | 118 |
5.00
из
|
Заказать работу |
|
|
Это пожалуй самый популярный способ, так как при возникновении ошибки лучше указать пользователю где он ошибся и перенаправить на другой путь выполнения программы. Сделать перенаправление можно при помощи команды GoTo, но сначала нам надо дать понять программе, что мы хотим отследить ошибку - т.е. включить распознование ошибок. Делается это следующим образом. В начало кода программы мы помещаем следующую команду
On Error
которая и говорит о том, что необходимо включить отслеживание ошибок. А команда GoTo уже перенаправит программу на то место, которое мы укажем. На примере нашей программе это можно продемонстрировать так:
Sub primer1() On Error GoTo errors a = 10 b = InputBox("Введите число отличное от 0", "Ввод данных", "0") c = a / b MsgBox "Результат: " & a & "/" & b & "=" & c, vbInformation, "Ответ" GoTo Endprimer errors: MsgBox "Ошибка! Вводите корректные данные", vbCritical, "Ошибка" Endprimer: End SubПоясню. При возникновении ошибки, программа с места ошибки сразу перенаправится на errors: и уже будет продолжать выполнять код с этого места. То-есть с информационного сообщения о том, что у нас возникла ошибка, после этого сообщения программа так и продолжит выполнять макрос дальше, в данном случае программа просто закончится. В случае, если ошибки нет, нам покажется результат и код перенаправится на Endprimer:, так как туда нас перенаправил GoTo.
Если Вы не хотите чтобы макрос выполнялся дальше, то можно добавить команду для выхода из макроса Exit Sub (завершение выполнения текущего макроса).
Способ №2. Настойчивость в исправлении ошибки
|
Можно сделать так, что в случае возникновения ошибки программа будет требовать от Вас ввести правильное число. Выглядеть это будет так.
Sub primer2() On Error GoTo errors a = 10 b = InputBox("Введите число отличное от 0", "Ввод данных", "0") c = a / b MsgBox "Результат: " & a & "/" & b & "=" & c, vbInformation, "Ответ" GoTo vpered errors: MsgBox "Ошибка! Повторите ввод", vbCritical, "Ошибка" b = InputBox("Введите число отличное от 0", "Ввод данных", "0") Resume vpered: End SubТут у нас добавилась только одна новая команда Resume, которая и будет перенапрявлять программу на место возникновения ошибки, тем самым требовать от нас правильного ввода данных, и пока мы их не введём, программа так и будет требовать от нас непонятного.
Способ №3. Предупреждён. Сообщение об ошибке
Хорошо, что разработчики VBA дали такой большой спектр обработки ошибок. Следующий способ уведомит Вас о произошедшей ошибке и выдаст её номер, а так же спросит Вас нужно ли выполнять программу дальше или всё таки прекратить её выполнение. Выглядеть это будет так.
Sub primer3() On Error GoTo errors a = 10 b = InputBox("Введите число отличное от 0", "Ввод данных", "0") c = a / b MsgBox "Результат: " & a & "/" & b & "=" & c, vbInformation, "Ответ" GoTo propusk errors: If Err.Number <> 0 Then resultat = MsgBox("При выполнении программы произошла ошибка №" & Err.Number & _ vbNewLine & "Продолжить выполнение программы не смотря на ошибку?", _ vbYesNo + vbCritical, "Ошибка") If resultat = vbYes Then Resume Next Else Exit Sub End If End If propusk: End SubТут у нас добавилось ещё одна новая команда Resume Next, которая говорит о том, что код необходимо продолжать выполнять дальше с места обнаружения ошибки, не смотря ни на что.
|
Способ №4. Очистка ошибки
Если Вы написли программу, которая выполняется очень долго и в ней море ошибок, то вы можете просто напросто очистить эти ошибки и отследить их все, а в конечном сообщении вывести результат об ошибках. Делается это на подобии этого.
Sub primer4() On Error Resume Next a = 10 b = InputBox("Введите число отличное от 0", "Ввод данных", "0") c = a / b MsgBox "Результат: " & a & "/" & b & "=" & c, vbInformation, "Ответ" If Err.Number <> 0 Then p = Err.Number Err.Clear MsgBox "Ошибка " & p & " очищена!", vbInformation, "Уведомление" End If End SubСпособ №5. Идём напролом
Если Вам наплевать на все ошибки и Вы даже не хотите о них слышать, то можно воспользоваться следующей записью.
Sub primer5() On Error Resume Next a = 10 b = InputBox("Введите число отличное от 0", "Ввод данных", "0") c = a / b MsgBox "Результат: " & a & "/" & b & "=" & c, vbInformation, "Ответ" End SubПри такой записи макрос будет продолжать выполняться не смотря на все ошибки.
Я думаю, что на основе этих примеров и уловок остальные способы обработки ошибок Вы сможете придумать сами, придумать такие, на какие Вам хватит фантазии.
Функция (отображение, оператор, преобразование) — математическое понятие, отражающее связь между какими-либо значениями. Можно сказать, что функция — это «закон», по которому одна величина зависит от другой величины.
Это стандартное определение, которое все знают из википедии. И в принципе уже всё понятно. Однако, хочу заметить, что в Excel, функция может быть и не математической. А, например, логической, финансовой или текстовой.
Большинство результатов можно добиться при пощи тех функций, которые имеютя в Excel. В этом занятии я покажу как можно создать свои собственные функции, если вам недостаточно базовых, которые заложены в Excel. Весь список функций, можно найти нажав вот на такую пиктограмму в строке формул
или на ленте выбрать вкладку Формулы и сразу откроется весь список имеющихся функций
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!