Страницы: 1
RSS
Не срабатывает оператор On Error go to
 
Привет всем

В макросе не срабатывает оператор On Error GoTo Сообщение0 (и все остальные On Error, связанные с переключателями) при отсутствии картинки "1.bmp":

On Error GoTo Сообщение0

Сообщение0:
If Err.Number = 52 Then
MsgBox "Нет графического файла 1.BMP" & Chr(13) & "Работаем без картинки", vbCritical, "Выплаты"
End If

Resume Next

В чем может быть причина?

Заранее извеняюсь за повтор более раней темы, просто ее название уже не соответсвовало сути вопроса.
 
"Сообщение0:" это ссылка на подпрограмму. Поставте просто метку например 1 и напишите On Error Goto 1
Согласие есть продукт при полном непротивлении сторон
 
А при чём тут это, чем Сообщение0: не метка? Просто Err.Number = 53
Изменено: anvg - 25.03.2013 21:29:31
 
Или уберите двоеточие после Сообщение0
Согласие есть продукт при полном непротивлении сторон
 
Да Вы попробуйте. Без двоеточия тоже не проходит - ошибся
Согласие есть продукт при полном непротивлении сторон
 
Сообщение0 с двоеточием это начало подпрограммы и переход на нее - GoSub Сообщение0
Согласие есть продукт при полном непротивлении сторон
 
Sanja
Не путайте человека. Поставьте Beakpoint на If Err.Number = 52 Then
Цитата
Код
Сообщение0:
If Err.Number = 52 Then
MsgBox "Нет графического файла 1.BMP" & Chr(13) & "Работаем без картинки", vbCritical, "Выплаты"
End If
И посмотрите в Immediate, чему равен Err.Number
 
Цитата
anvg пишет:
Err.Number = 53
Поэтому и не работает :)
Я сам - дурнее всякого примера! ...
 
Да, извиняюсь, не вник доконца
Согласие есть продукт при полном непротивлении сторон
 
Цитата
KuklP пишет: Поэтому и не работает
Как же не работает?
Сообщение - не выводит - это да. Так и не должно.  :D
 
Ок, специально для Андрея: не работает так, как хотелось бы автору.  :D
Я сам - дурнее всякого примера! ...
 
Поставил
On Error GoTo 1

With Me.Image1
   .BorderColor = .BackColor
   .Picture = LoadPicture("1.bmp")
End With

UserForm.Show

Exit Sub

1:
If Err.Number = 52 Then
MsgBox "Нет графического файла 1.BMP" & Chr(13) & "Работаем без картинки", vbCritical, "Выплаты"
End If

Resume Next

Все равно не работает.
 
Андрей Куравлев, Вы ответы читаете? Смените номер ошибки на 53 и будет Вам счастье.
Изменено: KuklP - 25.03.2013 10:28:05
Я сам - дурнее всякого примера! ...
 
Андрей Куравлев
Эх, уж поменяйте
If Err.Number = 52 Then
на
Код
If Err.Number = 53 Then 
 
А зачем вообще номер ошибки указывать?
Код
If Err Then 
 
Спасибо, заработало. Еще вопрос такой: если к картинке не прописывать полный путь, откуда VBA берет их по умолчанию?

Не могу поставить плюсы за сообщения: в Opere что ли их не видно?
Изменено: Андрей Куравлев - 25.03.2013 11:08:19
 
Скорее всего, узнать можно по
CurDir
Страницы: 1
Читают тему
Наверх