История следующая: было около сотни рабочих шаблонов со ссылками на внешние файлы (лежащие в той же папке) и я на протяжении месяца переписывал эти шаблоны в процессе не заметив, как сломались относительные ссылки и превратились в абсолютные.
Очень прошу подсказать хоть сколько нибудь быстрый метод замены ссылок, а то в каждом файле по 10-20 ссылок на 2-5 файлов (и нужны именно относительные т.к. шаблоны будут вставляться в разные папки и должны каждый раз находить новые связи внутри папок)
Попытался руками просто удалить абсолютную ссылку, но Эксель не даёт этого сделать и начинает требовать указать путь к новому файлу через проводник
upd: попытался написать макрос, но и formula и text и value выдают только значение формулы, а не саму формулу
Извиняюсь, писал с телефона, а он сильно преувеличивает размер текста. Дублирую для удобства:
История следующая: было около сотни рабочих шаблонов со ссылками на внешние файлы (лежащие в той же папке) и я на протяжении месяца переписывал эти шаблоны в процессе не заметив, как сломались относительные ссылки и превратились в абсолютные.
Очень прошу подсказать хоть сколько нибудь быстрый метод замены ссылок, а то в каждом файле по 10-20 ссылок на 2-5 файлов (и нужны именно относительные т.к. шаблоны будут вставляться в разные папки и должны каждый раз находить новые связи внутри папок)
Попытался руками просто удалить абсолютную ссылку, но Эксель не даёт этого сделать и начинает требовать указать путь к новому файлу через проводник
Дмитрий(The_Prist) Щербаков, не, тут говорится про ссылки на ячейки, а у меня проблема с ссылками на книги ($A$1 против C:User/desctop/papka/papkavpapke/нужный файл.xlsx)
попытался написать макрос, но и formula и text и value выдают только значение формулы, а не саму формулу
написал: тут говорится про ссылки на ячейки, а у меня проблема с ссылками на книги
а в чем разница, извините? В других книгах нет ячеек?
Цитата
Zozel написал: $A$1 против C:User/desctop/papka/papkavpapke/нужный файл.xlsx
речь точно про ссылки или это пути какие-то? Может ГИПЕРССЫЛКИ? По сути у Вас ссылки на папки, верно? Тогда здесь надо как минимум видеть файл, в котором прописаны эти все "ссылки", чтобы понимать, что вообще надо корректировать.
Файл к сожалению скинуть не могу т.к. он немного секретный, но суть в том, что нужно заменить связь формата "='C:\User\Desctop\Workfolder\Обмен\Zozel\11256\Файл для работы\[Инвентаризация.xlsx]03'!D9" на "='[Инвентаризация.xlsx]03'!D9". Файлы на которые ведёт ссылка могут быть разными, но все лежат в той же папке, что и рабочая книга.
Как уже говорил, макрос формулу в ячейке почему то видеть отказывается, единственный способ который сейчас нашёл - искать гиперссылки через ctrl+F и заменять на относительные при открытом файле, на который должна вести ссылка
Zozel написал: но все лежат в той же папке, что и рабочая книга
Да, Excel не умеет создавать относительные пути. Никак Вы этого не избежите, всегда после закрытия книги с ячейками будет преобразование в абсолютную адресацию к папке. Быстро можно заменить с помощью Ctrl+F так(при открытом файле источнике): найти: *[ Заменить на: [ Убедиться, что в параметрах поиска-замены снята галочка с "Ячейка целиком" и поиск идет по формулам.
написал: Никак Вы этого не избежите, всегда после закрытия книги с ячейками будет преобразование в абсолютную адресацию к папке.
Ну, не совсем, если открыта книга на которую ссылается ячейка, то при закрытии ссылка останется "Относительной", и при следующем открытии файла эксель будет искать данные либо в уже открытых книгах, либо в той же папке где сам находится.
Цитата
написал: Быстро можно заменить с помощью Ctrl+F так(при открытом файле источнике):
Спасибо за совет, так примерно и делаю, думаю за пару дней управлюсь, но всё равно времени чутка жалко.
Zozel написал: если открыта книга на которую ссылается ячейка, то при закрытии ссылка останется "Относительной",
ни разу такого не встречал Т.е. когда Вы закрываете книгу источник у Вас в ячейке ссылки на эту книгу не выглядят как конкретный путь к этой книге? Мы может опять про разное что-то говорим? Может Вы имеете ввиду, что закрываете саму книгу со ссылками, а не книгу-источник, на которую ведут ссылки? И даже в этом случае такой механизм нет-нет да будет давать сбой и Excel в какой-то момент может прописать последний известный путь к книге, а не искать среди открытых.
т.е. Вам не в одной книге это надо сделать, что ли? Просто вроде бы достаточно одной такой замены по всей книге(в параметрах можно делать замену во всех листах разом).
написал: Может Вы имеете ввиду, что закрываете саму книгу со ссылками, а не книгу-источник, на которую ведут ссылки?
С формулировками у меня туго как выяснилось, так что просто объясню как я это делаю. Ссылка находится в ОсновнаяКнига, и ведёт на КнигаИсточник. Я открываю оба файла (путь не важен, нужно только чтобы имена совпадали и лежали в одной папке), и изменяю значение ячейки в ОсновнаяКнига с "='C:\User\Desctop\Zozel\Файл для работы\[КнигаИсточник.xlsx]03'!D9" на "='[КнигаИсточник.xlsx]03'!D9" Ссылка автоматически переназначается на открытый файл КнигаИсточник и не требует указывает путь к ней. После этого не закрывая КнигаИсточник закрываю и сохраняю ОсновнаяКнига. Как итог в ячейке остаётся краткая ссылка "='[КнигаИсточник.xlsx]03'!D9". Ну и потом эксель при открытии книги пытается найти файл имея только его название (а это открытые книги и книги в той же папке) и заполняет ссылку маршрутом до самого себя (как я понимаю). Таким образом не получается файл который можно было бы кидать из папки в папку и чтобы он каждый раз подтягивал новые данные, но можно сделать шаблон, который будет адаптироваться к папке в которую его скопируют. Для моих целей не идеально, но в целом подходит
Цитата
написал: т.е. Вам не в одной книге это надо сделать, что ли?
т.е. сотня файлов типа "ОсновнаяКнига" с такими ссылками? Начинайте изучать макросы - с их помощью это можно сделать за минуту Жмете кнопочку - указываете папку с этими файлами(если они все в одной папке, конечно). Код переберет все эти файлы и заменит в них во всех листах ссылки с полных путей на краткие. Правда, есть нюанс: перед этим надо будет открыть все "КнигиИсточники" для этих файлов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
написал: Начинайте изучать макросы - с их помощью это можно сделать за минуту
Уже пытался сделать это макросом, но не выходит получить формулу из ячейки. - formula и text и value выдают только значение формулы, а не саму формулу (т.е. в переменную попадает значение "41000", а не "='C:\User\Desctop\Zozel\Файл для работы\[КнигаИсточник.xlsx]03'!D9", не приложу ума из-за чего так происходит)
(ну, я пытался просто перебрать все ячейки во всех книгах и если там есть ссылка то отредактировать значение на нужное по принципу "приравнял переменную ячейке, отредактировал, приравнял ячейку переменной". А необходимые книги можно было руками открыть предварительно)