- •Скрытые перемещения
- •Относительные перемещения
- •Перемещаемся по листам не зная их имён
- •Крайние перемещения
- •Выделения относительно активной ячейки
- •Относительные формулы
- •Столбцы и строки
- •Error. Обработка ошибок
- •Скачать пример
- •Способ №1. Перенаправление программы
- •Способ №2. Настойчивость в исправлении ошибки
- •Способ №3. Предупреждён. Сообщение об ошибке
- •Способ №4. Очистка ошибки
- •Способ №5. Идём напролом
- •Создание собственной функции
- •Цифры прописью
- •Заставка приветствия реализованная на UserForm
- •Выпадающий список ComboBox на UserForm
- •Работа с ComboBox
- •Как поставить значение по умолчанию в ComboBox?
- •Запрет ввода данных в ComboBox
- •Ускоряем работу макроса в Excel
- •Глобальное ускорение
Способ №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. Весь список функций, можно найти нажав вот на такую пиктограмму в строке формул
или на ленте выбрать вкладку Формулы и сразу откроется весь список имеющихся функций
