Excel – присвоение имени
Модератор: Naeel Maqsudov
Имеется 2 книги – “Счет.xls” и “Данные.xls”,они находятся в одном каталоге. В книге “ Счет.xls” определяю имя как ссылку на ячейку (или массив ячеек) из книги “Данные.xls” . Копирую книгу “Счет.xls” на другой диск. В результате копирования в объявленном имени изменяется путь файла, на который ссылается заданное имя – этот путь начинается с имени диска, на который скопирован файл “Счет.xls”. В чем причина такой подмены?
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Причина в том, что сначала обе книги находились в одной папке.
И Excel "думает", что где бы ни оказалась книга Счет, Данные надо искать в той же папке, где Счет.
На самом деле подмены никакой нет. Просто Excel так показывает, где он намеревается искать содержимое по внешней ссылке.
Т.е. куда бы Вы не пложили файл Счет. Локальная внешняя ссылка (до момента восстановления связи) будет отображаться с путем к книге Счет.
Короче, все нормально. Все так и должно быть.
И Excel "думает", что где бы ни оказалась книга Счет, Данные надо искать в той же папке, где Счет.
На самом деле подмены никакой нет. Просто Excel так показывает, где он намеревается искать содержимое по внешней ссылке.
Т.е. куда бы Вы не пложили файл Счет. Локальная внешняя ссылка (до момента восстановления связи) будет отображаться с путем к книге Счет.
Короче, все нормально. Все так и должно быть.
Если все так и должно быть, как же мне поступать? “Данные.xls” у меня должны храниться на одном и том же - общем для всех диске, а вот “Счет.xls” - это перемещаемый файл, его пользователь размещает там, где ему удобно. При запуске на выполнение, естественно, выскакивает ошибка(не находится файл, на который ссылается объявленное имя)
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Когда вы создавали формулу, то файлы находились в одной папке.
Excel сохранил книгу Счет с локальными (в той же папке) ссылками. Прикольно, что полные ссылки (с путем) от локальных (текущую папку) на вид никак не отдичаются (в этом-то вся и проблема). Не знаю как он там себе отмечает, что надо именно в текущей папке искать связанный файл, но как-то он это делает.
Теперь, куда бы вы не перенесли Счет, Excel открывая его "думает", что данные надо искать в той же папке.
Итак: Что делать? и Кто виноват?
Ответ на второй вопрос понятен - Билл Гейтс
Во всем виноват Билл Геттс! 
А делать надо вот что.
Положите Данные на место. Т.е. на общий диск.
Теперь откройте Cчет и не обновляя связей (!) перевведите заново формулы. (F2 и Enter на формуле должно по идее помочь)
Возможно, будет достаточно переввести только самую первую формулу.
Сохраните книгу и проверьте. Должно вылечиться.
Excel сохранил книгу Счет с локальными (в той же папке) ссылками. Прикольно, что полные ссылки (с путем) от локальных (текущую папку) на вид никак не отдичаются (в этом-то вся и проблема). Не знаю как он там себе отмечает, что надо именно в текущей папке искать связанный файл, но как-то он это делает.
Теперь, куда бы вы не перенесли Счет, Excel открывая его "думает", что данные надо искать в той же папке.
Итак: Что делать? и Кто виноват?
Ответ на второй вопрос понятен - Билл Гейтс


А делать надо вот что.
Положите Данные на место. Т.е. на общий диск.
Теперь откройте Cчет и не обновляя связей (!) перевведите заново формулы. (F2 и Enter на формуле должно по идее помочь)
Возможно, будет достаточно переввести только самую первую формулу.
Сохраните книгу и проверьте. Должно вылечиться.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
У механизма внешних ссылок есть неочевидное на первый взгляд ограничение.
Если у Вас будут файлы, например, C:\rep\2004\Data.xls и D:\rep\2005\Data.x.
И Вы захотите из одного Bill.xls сослаться на оба, то у Вас ничего не выйдет.
Будет использоваться тот, с которым обновление связей пройдет первым.
PS
Я Вам настоятельно рекомендую уйти от внешних ссылок и от Excel вообще. Для решения такого сорта задач однозначно лучше подходит Access.
Если у Вас будут файлы, например, C:\rep\2004\Data.xls и D:\rep\2005\Data.x.
И Вы захотите из одного Bill.xls сослаться на оба, то у Вас ничего не выйдет.
Будет использоваться тот, с которым обновление связей пройдет первым.
PS
Я Вам настоятельно рекомендую уйти от внешних ссылок и от Excel вообще. Для решения такого сорта задач однозначно лучше подходит Access.
Попробуйте следующее:Если все так и должно быть, как же мне поступать? “Данные.xls” у меня должны храниться на одном и том же - общем для всех диске, а вот “Счет.xls” - это перемещаемый файл, его пользователь размещает там, где ему удобно. При запуске на выполнение, естественно, выскакивает ошибка(не находится файл, на который ссылается объявленное имя)
Имеем 2 файла
C:\PathAll\Данные.xls
C:\Path_1\Счет.xls
1.Редактируем спокойно Счет.xls, организуя внешние ссылки на C:\AllPath\Данные.xls
Затем если вам надо перенести файл Счет.xls в другую папку, например C:\Path_2\Счет.xls - делайте это через команду "Сохранить как..." в самом Excel, а не просто копируя в проводнике, тогда ссылки сохранятся.
2. Открывайте у пользователя сначала файл C:\PathAll\Данные.xls, а затем уже Счет.xls, тогда предупреждение о внешних ссылках выходить не будет, если же пользователь будет открывать только один Счет.xls, то придется один раз нажать OK - для подтверждения обновления ссылок.
Один недостаток, что C:\PathAll\Данные.xls лучше сразу расположить в необходимую общую папку.
Если же вам необходимо будет перенести Данные.xls в папку C:\PathAll_1, то тогда необходимо открыть Счет.xls и сделать замену по всему листу(рабочей книге) C:\PathAll\ на C:\PathAll_1\, ну а затем опять проделать обновленного Счет.xls для всех пользователей командой "Сохранить как...".
Как видите все можно сделать, но достаточно муторно.