Страницы: 1
RSS
Получение пути к открытому файлу, Как получить путь к папке, где находится открытый файл?
 
Доброго времени суток! У меня следующая проблема:

Есть файл, который копируется на разные ПК и, соответственно, запускается с разных мест. С этим же файлом в папке присутствует подпапка, содержащая файлы.
Пример:
D:\Work\N100\Excel.xls
D:\Work\N100\Data\01
D:\Work\N100\Data\02
...
В VBA у меня есть скрипт, который открывает эти файлы и копирует их содержимое в данный Excel. Но там конкретный путь, и при перемещении папки в другое место он работать не будет. Как сделать так, чтобы при изменении пути к файлу Excel данные копировались? Папка Data и файлы в ней всегда имеют постоянные имена. Наример:
F:\Job\N101\Excel.xls
F:\Job\N101\Data\01
F:\Job\N101\Data\02

Надеюсь я изложить суть вопроса ясно...
Очень надеюсь на вашу помощь!
 
Добрый день!
Цитата
voice написал:
при перемещении папки в другое место он работать не будет.
Перемещение осуществляется вашим скриптом или уже пользователем?
 
Пользователем. То есть с этими данными работают люди на разных ПК с разными путями. И я хочу сделать кнопку, при нажатии которой данные будут копироваться независимо от пути. То есть, например, Excel определяет из какой папки он открыт и обращается уже к этой папке дальше. В данное случае к подпапке, но мне кажется, что это уже нюансы  
 
Единственное, что сразу приходит на ум, так это в файлы, которые копируются добавить макрос, который при открытии файла пользователем (независимо от того где находится данный файл) будет передавать путь в общий файл, но для этого пользователь должен давать согласие на запуск макросов при открытии файла. После того как вы будете нажимать кнопку ваш макрос уже будет проходить по путям переданным из ранее открытых файлов пользователями.
Изменено: dmt. - 07.12.2016 22:32:55
 
Код
pth = thisworkbook.path & "\data\"
fLnm1 = pth & "01"
fLnm2 = pth & "02"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
dmt. написал:
Единственное, что сразу приходит на ум, так это в файлы, которые копируются добавить макрос...
Невозможно, так как файлы в подпапке не экселевские... Их приходится открывать через Excel, выбирать разделители и т.п.
Изменено: voice - 07.12.2016 22:41:31
 
Ігор Гончаренко, скажите, а если я сделаю таким образом:
ThisWorkbook.Path & "\Data\01"  'когда ссылаюсь уже к конкретному файлу
То моя задача решится? По-моему должна
 
Цитата
То моя задача решится? По-моему должна
Перед тем, как спросить, нужно попробовать, да?

Конкретный файл с именем 01? Нужно добавить расширение.
 
Цитата
vikttur написал:
Перед тем, как спросить, нужно попробовать, да?
Полностью согласен.
Спасибо всем
Страницы: 1
Читают тему
Наверх