VBA Excel как программно "отлавливать" ошибки?

Программирование на Visual Basic for Applications
HTF_1
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 28.10.2011 (Пт) 16:05

VBA Excel как программно "отлавливать" ошибки?

Сообщение HTF_1 » 03.11.2011 (Чт) 21:17

Уважаемые форумчане!

У меня программа открывает в цикле множество файлов (ну и далее обрабатывает их содержимое)

но иногда она пытается открыть несуществующий файл и при этом, к сожалению, выполнение прерывается и выдается сообщение об ошибке

On Error Resume Next помогает не полностью, т.к. для возобновления выполнения программы все равно необходимо в появляющемся окне с сообщением об ошибке нажать вручную "ОК"

подскажите пожалуйста: как сделать, чтобы выполнение программы не прерывалось?

Заранее спасибо за ответ

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 03.11.2011 (Чт) 21:40

Проверять файл на существование?

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBA Excel как программно "отлавливать" ошибки?

Сообщение ger_kar » 04.11.2011 (Пт) 5:53

HTF_1 писал(а):On Error Resume Next помогает не полностью
Ну как вариант использовать On Error Goto и обрабатывать ошибку, а не просто ее пропускать. Но лучше конечно использовать вариант предложенный Qwertiy
Бороться и искать, найти и перепрятать

HTF_1
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 28.10.2011 (Пт) 16:05

Re: VBA Excel как программно "отлавливать" ошибки?

Сообщение HTF_1 » 05.11.2011 (Сб) 15:48

Qwertiy писал(а):Проверять файл на существование?



я не знаю как проверить наличие файла перед его открытием...

т.к. файлы программа скачивает из интернета и я заранее не могу знать: есть данная страница на этом сайте или нет...

может быть можно как-то попробовать сначала через Iternet Explorer попробовать проверить наличие данной страницы на сайте?

но я в IE программировать к сожалению, пока не умею...
подскажите, пожалуйста: может кто-то уже сталкивался с данным вопросом...

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBA Excel как программно "отлавливать" ошибки?

Сообщение ger_kar » 05.11.2011 (Сб) 17:38

Я например так и не понял, что требуется, то ли проверять доступность страницы на web ресурсе, то ли проверять есть ли файл в папке со скачанными файлами. Обрабатывать ошибку в On Error Goto пробовал? Какая ошибка? Как обрабатывал?
Бороться и искать, найти и перепрятать

HTF_1
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 28.10.2011 (Пт) 16:05

Re: VBA Excel как программно "отлавливать" ошибки?

Сообщение HTF_1 » 05.11.2011 (Сб) 19:00

требуется проверять доступность страницы на web ресурсе

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.11.2011 (Вс) 0:03

Я что-то не понимаю, или "А при чём тут Excell?"

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBA Excel как программно "отлавливать" ошибки?

Сообщение ger_kar » 06.11.2011 (Вс) 10:21

Qwertiy писал(а):Я что-то не понимаю, или "А при чём тут Excell?"

Наверное, что-то загружается из Web ресурса и переноситься в Excel, прайс например, или еще чего нибудь.

А по теме могу посоветовать подключить к проекту Microsoft Internet Controls и заюзать его. В частности в его состав входит объект InternetExplorer, у которого имеются все нужные методы и свойства в т.ч. Navigate и событие NavigateError и другие.
Бороться и искать, найти и перепрятать

oleg
Обычный пользователь
Обычный пользователь
 
Сообщения: 71
Зарегистрирован: 07.02.2002 (Чт) 1:41

Re:

Сообщение oleg » 14.12.2011 (Ср) 20:27

Qwertiy писал(а):Проверять файл на существование?

что за метод использовать? я всегда тоже делал, если ошибка при открытии файла, значит нет его ))

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: VBA Excel как программно "отлавливать" ошибки?

Сообщение ger_kar » 14.12.2011 (Ср) 21:05

Dir$ [(PathName[, Attributes])]
Функция Dir служит для проверки существования каталога или файла, отвечающих заданному образцу. Функция поддерживает использование подстановочных знаков для нескольких символов(*) и одиночного символа(?) для указания нескольких файлов. Функция возвращает первое имя файла, имя которого соответствует аргументу PathName. Для получения остальных файлов, имена которых соответствуют PathName, следует повторно вызвать функцию Dir без аргументов. Последовательные вызовы функции без аргументов возможны до тех пор, пока имеются файлы или папки, соответствующие образцу первого вызова(с аргументами)
Примечание: Рекурсивные вызовы функции Dir запрещены
Функция возвращает данные типа String, структурно представляющего имя файла или папки, которые удовлетворяют указанному шаблону имени файла, набору атрибутов файла или метке тома на диске. Если аргумент PathName не найден, то функция Dir возвращает пустую строку(" ")
Примечание: Если после возврата функцией пустой строки, снова вызвать функцию без аргументов, то возникает ошибка времени исполнения
PathName
Необязательный аргумент. Строковое выражение, указывающее имя файла. Также может содержать имя каталога или папки и диска. При использовании имен файлов или папок, содержащих пробелы следует использовать дополнительные кавычки - Dir(""C:\Русский Проект\app.exe"") или Dir(Chr(34) & "C:\Русский Проект\app.exe" & Chr(34))
Примечание: Хотя PathName указан, как необязательный аргумент, он обязателен при первом вызове функции, а также в случаях, если задан аргумент Attributes
Attributes
Необязательный аргумент, содержащий константу или числовое выражение, описывающее атрибуты файла. Если этот аргумент опущен, возвращаются все файлы, имена которых удовлетворяют содержимому аргумента PathName. Допустимые значения Attributes
vbNormal=0
Обычное состояние файла.Используется по умолчанию
vbReadOnly=1
Атрибут только для чтения
vbHidden=2
Скрытый атрибут
vbSystem=4
Системный атрибут
vbVolume=8
Метка тома
vbDirectory=16
Каталог или папка
Примечание: Можно также указывать комбинации атрибутов путем их суммирования
Например, vbHidden+vbDirectory выводит скрытые папки
Бороться и искать, найти и перепрятать


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList