Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Ошибка Run-time error '9'

Автор vladturbo, 17.02.2011, 19:31

« назад - далее »

vladturbo

Добрый вечер.
Помогите обойти ошибку.
Макрос выбирает лист имя которого указано в ячейке С9 и удаляет лист,также в столбце А выбирает значение (имя листа, которое указано в ячейке С9) и удаляет из столбца А ячейку с этим значением.
Все отлично работает, однако если в ячейке С9 указано имя несуществующего листа вылезает ошибка.
Вопрос? Как сделать, чтобы выполнение макроса останавливалось, сообщение об ошибке на появлялось.
Вот код:
Private Sub CommandButton2_Click()
Sheets(Range("C9").Value).Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Sheets("Лист1").Select
Columns("A:A").Select
Selection.Find(What:=(Range("C9").Value), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Delete
Range("C5").Select
End Sub

Если использовать on error resume next

Private Sub CommandButton2_Click()
Application.DisplayAlerts = False
on error resume next
Sheets(Range("C9").Value).Delete
Sheets("Лист1").Columns("A:A").Find(What:=(Range("C9").Value), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Delete
Range("C5").Select
Application.DisplayAlerts = true
End Sub

получается что:
on error resume next
передает управление
ActiveCell.Delete
и происходит удаление любой активной ячейки где установлен курсор

_Boroda_

А если так:
Sub ...
on error goto A

тело макроса

A:
EndSab

Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995