[VBA, Excel] узнать наличие файла в папке

igorek1

В процессе работы макроса в Excel открываю и сохраняю файлы в определенные папки. Чтобы избежать ошибок, хочется научиться проверять наличие файла с таким-то именем в папке (такой-то путь). Подскажет кто?

Trofimovyoa

Dir(полное имя файла если в ответ пустая строка - значит, файла нет

igorek1

да, работает, спасибо.
Может, подскажешь еще, как:
1. Проверить, есть ли открытый файл с таким-то именем
2. Создать в форме объект, который позволяет при клике на него выбирать папку. Для файла сделал через:
With Application.FileDialog(msoFileDialogOpen)
А теперь нужно выбрать именно папку, т.е. чтобы появившееся окно не ждало файла.

Trofimovyoa

1. а) Пройди циклом по открытым книгам и сравни у них Name с требуемым именем или
б) попробуй активировать книгу по имени и обработай ошибку (on error goto ...)
2. так же, как сделал для файла, только используй параметр msoFileDialogFolderPicker, а не msoFileDialogOpen

igorek1

с пунктом 2 понятно, спасибо.
А про первый, как надо написать цикл? Что-то вроде:
For each a in openworkbooks
If a.name = "искомая книга" Then msgbox ("книга с именем " & a & " открыта")
Next a
?

Trofimovyoa

да, только
For each a in workbooks

igorek1

спасибо. Всё работает.

igorek1

может, еще подскажешь, как сделать так, чтобы какой-нить макрос начинал работать при открытии файла?
Оставить комментарий
Имя или ник:
Комментарий: