Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Не удалось найти файл - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не удалось найти файл (Макросы/Sub)
Не удалось найти файл
borus Дата: Среда, 25.01.2017, 15:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 43
Репутация: 0 ±
Замечаний: 0% ±

2007
Здравствуйте!

Создал файл Эксель, в единственном модуле которого написан код

, призванный открывать файлы в папке по заданной маске.
Исполнение кода останавливается сообщением, что не удалось найти файл "Бланк наряда.xls", хотя он по указанному в Cells(2, 2) пути присутствует.
Скажите, пожалуйста, в чем ошибка?
К сообщению приложен файл: 5368823.zip (13.0 Kb)


желаю вам счастья

Сообщение отредактировал borus - Среда, 25.01.2017, 16:36
 
Ответить
СообщениеЗдравствуйте!

Создал файл Эксель, в единственном модуле которого написан код

, призванный открывать файлы в папке по заданной маске.
Исполнение кода останавливается сообщением, что не удалось найти файл "Бланк наряда.xls", хотя он по указанному в Cells(2, 2) пути присутствует.
Скажите, пожалуйста, в чем ошибка?

Автор - borus
Дата добавления - 25.01.2017 в 15:40
bmv98rus Дата: Среда, 25.01.2017, 16:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
borus,

Попробуйте заключить в ковычки
[vba]
Код
        Workbooks.Open Filename:="""" & doc & """"
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 25.01.2017, 17:09
 
Ответить
Сообщениеborus,

Попробуйте заключить в ковычки
[vba]
Код
        Workbooks.Open Filename:="""" & doc & """"
[/vba]

Автор - bmv98rus
Дата добавления - 25.01.2017 в 16:27
Alex_ST Дата: Среда, 25.01.2017, 16:51 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
Файл с макросами скачать с работы не могу...
Но на взгляд: чему равно doc ?
Если это именованный диапазон, то обращение к нему не правильное.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеФайл с макросами скачать с работы не могу...
Но на взгляд: чему равно doc ?
Если это именованный диапазон, то обращение к нему не правильное.

Автор - Alex_ST
Дата добавления - 25.01.2017 в 16:51
bmv98rus Дата: Среда, 25.01.2017, 17:07 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Alex_ST,
это Collection . набирают через Scripting.FileSystemObject ну я предположил, что пробелы при открытии гадят,

borus,
а на самом деле там имя файла, но не полный путь.

изменить fil.name на fil или fil.path
[vba]
Код
        For Each fil In curfold.Files    ' ïåðåáèðàåì âñå ôàéëû â ïàïêå FolderPath
            If fil.Name Like "*" & Mask Then FileNamesColl.Add fil
        Next
[/vba]

Во только зачем всех напрягать и тут и там


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 25.01.2017, 17:43
 
Ответить
СообщениеAlex_ST,
это Collection . набирают через Scripting.FileSystemObject ну я предположил, что пробелы при открытии гадят,

borus,
а на самом деле там имя файла, но не полный путь.

изменить fil.name на fil или fil.path
[vba]
Код
        For Each fil In curfold.Files    ' ïåðåáèðàåì âñå ôàéëû â ïàïêå FolderPath
            If fil.Name Like "*" & Mask Then FileNamesColl.Add fil
        Next
[/vba]

Во только зачем всех напрягать и тут и там

Автор - bmv98rus
Дата добавления - 25.01.2017 в 17:07
Alex_ST Дата: Среда, 25.01.2017, 21:49 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
чему равно doc ?
это Collection . набирают через Scripting.FileSystemObject
borus, работали бы с Option Explicit - намного меньше вопросов возникало бы.
А вообще-то стиль программирования и код знакомые ...
О! Точно, у Игоря (EducatedFool) ЗДЕСЬ списано.
И при этом никаких ссылок на первоисточник в файле нет >(
Вот там, где взяли и надо спрашивать, почему позаимствованное не работает так, как Вам надо.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
чему равно doc ?
это Collection . набирают через Scripting.FileSystemObject
borus, работали бы с Option Explicit - намного меньше вопросов возникало бы.
А вообще-то стиль программирования и код знакомые ...
О! Точно, у Игоря (EducatedFool) ЗДЕСЬ списано.
И при этом никаких ссылок на первоисточник в файле нет >(
Вот там, где взяли и надо спрашивать, почему позаимствованное не работает так, как Вам надо.

Автор - Alex_ST
Дата добавления - 25.01.2017 в 21:49
bmv98rus Дата: Среда, 25.01.2017, 22:15 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop] Alex_ST,
Спокойнее :-). Все "тырят", целиком или адаптируют. Уж незнаю как Option Explicit бы спасло, но просто Filename , FullFileName , Path порой могут запутать, а уж когда код не свой, так тем более не понять, что есть что.

Лучше посмотрите это что-то мне подсказывает что можете помочь и мне пояснить.[/offtop]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение[offtop] Alex_ST,
Спокойнее :-). Все "тырят", целиком или адаптируют. Уж незнаю как Option Explicit бы спасло, но просто Filename , FullFileName , Path порой могут запутать, а уж когда код не свой, так тем более не понять, что есть что.

Лучше посмотрите это что-то мне подсказывает что можете помочь и мне пояснить.[/offtop]

Автор - bmv98rus
Дата добавления - 25.01.2017 в 22:15
Wasilich Дата: Четверг, 26.01.2017, 00:34 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Скажите, пожалуйста, в чем ошибка?
VBA не желает открывать файлы, имена которых содержат пробелы. В соответствии с вашим примером, так должно работать.
[vba]
Код
Sub ОткрытьФайл()
    Fail$ = "" & Cells(2, 2) & "\Бланк наряда.xls" & ""
    If Dir(Fail) <> "" Then
       Workbooks.Open Filename:=Fail
    Else
       MsgBox "Не найден!"
    End If
End Sub
[/vba]
 
Ответить
Сообщение
Скажите, пожалуйста, в чем ошибка?
VBA не желает открывать файлы, имена которых содержат пробелы. В соответствии с вашим примером, так должно работать.
[vba]
Код
Sub ОткрытьФайл()
    Fail$ = "" & Cells(2, 2) & "\Бланк наряда.xls" & ""
    If Dir(Fail) <> "" Then
       Workbooks.Open Filename:=Fail
    Else
       MsgBox "Не найден!"
    End If
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 26.01.2017 в 00:34
Alex_ST Дата: Четверг, 26.01.2017, 09:07 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3208
Репутация: 609 ±
Замечаний: 0% ±

2003
Уж незнаю как Option Explicit бы спасло, но просто Filename , FullFileName , Path порой могут запутать, а уж когда код не свой, так тем более не понять, что есть что
как раз применение Option Explicit совместно с заданием не только переменных, но и их типов (при наличии возможности) и позволит не допустить глупых ошибок при вводе имён переменных и как следствие - избежать случаев, когда процедура работает, но даёт совершенно не те результаты, на которые Вы рассчитывали.
Конечно, ассы класса уважаемого Игоря (EducatedFool) могут позволить себе не использовать Option Explicit. Зато имена, которые он даёт переменным в своих процедурах всегда осмысленны и зачастую позволяют читать код с листа. В этом он без сомнения учитель многих "писателей". Ну как можно запутаться, например, в именах Filename , FullFileName , Path если даже при простом прочтении становится ясно, какова их размерность и что в них хранится?
Но пытаться адаптировать чужой код, не понимая как он работает, не декларируя Option Explicit и, соответственно, не будучи уверенным в том, что Ваши процедуры получат от чужих именно то, на обработку чего они "заточены"… killed
[offtop]
Лучше посмотрите это
bmv98rus, вообще-то я смотрю только то, что меня интересует, а советы даю только о том, в чём достаточно уверен.
Да и к тому же программирую только "для души", на работе в свободное время, а с работы файлы с макросами скачать не могу. Дома - только домашние дела.[/offtop]



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Уж незнаю как Option Explicit бы спасло, но просто Filename , FullFileName , Path порой могут запутать, а уж когда код не свой, так тем более не понять, что есть что
как раз применение Option Explicit совместно с заданием не только переменных, но и их типов (при наличии возможности) и позволит не допустить глупых ошибок при вводе имён переменных и как следствие - избежать случаев, когда процедура работает, но даёт совершенно не те результаты, на которые Вы рассчитывали.
Конечно, ассы класса уважаемого Игоря (EducatedFool) могут позволить себе не использовать Option Explicit. Зато имена, которые он даёт переменным в своих процедурах всегда осмысленны и зачастую позволяют читать код с листа. В этом он без сомнения учитель многих "писателей". Ну как можно запутаться, например, в именах Filename , FullFileName , Path если даже при простом прочтении становится ясно, какова их размерность и что в них хранится?
Но пытаться адаптировать чужой код, не понимая как он работает, не декларируя Option Explicit и, соответственно, не будучи уверенным в том, что Ваши процедуры получат от чужих именно то, на обработку чего они "заточены"… killed
[offtop]
Лучше посмотрите это
bmv98rus, вообще-то я смотрю только то, что меня интересует, а советы даю только о том, в чём достаточно уверен.
Да и к тому же программирую только "для души", на работе в свободное время, а с работы файлы с макросами скачать не могу. Дома - только домашние дела.[/offtop]

Автор - Alex_ST
Дата добавления - 26.01.2017 в 09:07
bmv98rus Дата: Четверг, 26.01.2017, 09:44 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4107
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop]
Option Explicit совместно

Я про конкретный случай, когда просто вместо полного пути получено только имя файла. а в целом, даже пояснять не нужно. все то пишите правильно.[/offtop]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение[offtop]
Option Explicit совместно

Я про конкретный случай, когда просто вместо полного пути получено только имя файла. а в целом, даже пояснять не нужно. все то пишите правильно.[/offtop]

Автор - bmv98rus
Дата добавления - 26.01.2017 в 09:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не удалось найти файл (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!