Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Kkarn
891 / 281 / 50
Регистрация: 02.12.2014
Сообщений: 1,213
1

Как получить ПОЛНЫЙ ПУТЬ к файлу из сохраненной на листе гиперссылки?

24.03.2015, 18:11. Просмотров 2259. Ответов 1
Метки нет (Все метки)

Добрый день.
У меня есть книга эксель, в которой на отдельном листе собраны гиперссылки на другие файлы экселя.
Необходимо организовать открытие и обработку этих файлов.
Казалось бы, чего проще, можно воспользваться методом .Follow объекта гиперссылки, только вот есть заковыка - на некоторых файлах стоят пароли (которые известны и занесены в соседнюю ячейку возле ссылки).
И вот как сделать автоматический ввод пароля при программном открытии файла через метод .Follow - я не нашел. посему решил пойти другим путем - через Workbooks.Open. Для начала, недолго думая, написал вот так:

Workbooks.Open Link.Address,,,,пароль

где Link - это объект гиперссылки из семейства гиперссылок на листе. а "пароль" - там я написал ссылку на значение ячейки рядом с ячейкой гиперссылки. Что самое интересное, ЭТО РАБОТАЛО! Ну, рано я радовался, потому что после нескольких успешных попыток - оно перестало работать. Начало писать, что не можем найти файл такой-то, может он был перемещен?.. при этом методом Link.Follow все продолжает замечательно открываться, только с выводом окна для ввода пароля, что меня не устраивает.

Я совершенно не могу понять, что изменилось и почему перестало рабоать, ну да бог с ним. Решил пойти еще более обходным путем и вписывать в Workbooks.Open полный путь к файлу, как положено - может хотя бы после этого начнет работать. И вот хочу у вас спросить совета - как достать или сформировать ПОЛНЫЙ путь к файлу из гиперссылки на этот файл? В свойстве Address объекта гиперссылки хранится только ОТНОСТЕЛЬНЫЙ путь вида "..\имя файла" (как пример, может быть и хуже - ..\..\имя файла и т.д.)

Буду признателен за советы и направление на верный путь)
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2015, 18:11
Ответы с готовыми решениями:

Макрос в OpenOffice Calc, как получить полный путь к файлу?
Здравствуйте! Делаю макрос в OO Calc , вывожу полный путь к файлу MsgBox ThisComponent.Location...

Как получить полный путь к файлу?
Всем здравия и благополучия! Помогите пожлуйста разобраться с jquery которая была применина к...

File Uploading (или как получить полный путь к файлу на клиенте)
Приветствую Вас. У меня ситуация следующая: Необходимо загрузить файл с клиента на сервер (в БД),...

Как получить полный путь к файлу, только что созданному при помощи SaveToFile?
Доброго времени суток! Ситуация такая: if SaveDialog1.Execute then begin ...

Получить полный путь к файлу
Как мне получить полный путь к файлу "1.bat", который находится в той же папке что и exe-ник...

1
Казанский
14901 / 6305 / 1718
Регистрация: 24.09.2011
Сообщений: 9,977
24.03.2015, 18:35 2
Лучший ответ Сообщение было отмечено Kkarn как решение

Решение

Берете activeworkbook.path, разбиваете по "\" и сопоставляете с этим: "..\..\имя файла"

Есть еще такой малоизвестный параметр "база гиперссылки" в свойствах книги.
Если этот параметр указан, гиперссылка СОЗДАЕТСЯ c путем относительно этого параметра. Если не указан, то относительно activeworkbook.path.
Т.е. если указать базу гиперссылки zz:\ (несуществующий диск), то адрес НОВОЙ гиперссылки будет содержать полный путь.
НО при изменении "базы гиперссылки" существующие гиперссылки НЕ корректируются (к сожалению).
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2015, 18:35

Получить Полный путь к файлу по Дескриптору
Нашел вот этот пример, а как использовать не знаю. Подскажите Пожалуйста. static extern void...

Получить полный путь к файлу из диалога открытия файла из js
Нужно кроссбраузерное решение. Сам файл мне не нужен, нужен только полный путь к нему. Запуск...

Получить полный путь к файлу созданного через ofstream
std::string name = "kalyaka-balyaka"; std::ofstream F(name, std::ios::out); std::cout << "Polniy...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru