![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
Исходная задача выглядит так: в одной папке лежит 11 файлов. В один файл собираются данные из осталных 10. Соответственно, в этом самом главном файле ссылки на остальные десять файлов, причем имена всех книг, листов и ячеек известны заранее. В один прекрасный день я хочу скопировать свой главный файл в другую папку, в которой тоже лежит 10 книг, которые называются также, но данные в которых другие.
И вот она цель - в самом главном файле должны обновиться все данные!!! Для решения я хочу в главном файле сделать такие ссылки, которые указывает на файл из той папки, в которой находится главный файл. Грубо говоря, чтобы вместо жесткого "D:\\WORK\FG.XLSX" было что-то навроде "~\FG.XLSX". Как написать вот это ЧТО-ТО? Напишите пожалуйста, чисто теоретически это возможно осуществить? Может быть вообще стоит действовать по другому? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
![]()
Если работает макрос, то удобно будет использовать:
Код:
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Позволю замечание: т.к. не известно, какая книга в данный момент активна, лучше использовать не
Код:
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
Спасибо большое. Форум програмистов становится моим учебником по VB. Спасибо!
Только вот я не хотел писать макрос. Я просто хотел в ячейки главной книги вбить ссылки, содержащие имена книг. В результате книги меняются, имена остаются, данные сами обновляются. Разве так не получится??? Разве нельзя ссослаться на файл без полного пути??? |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Если обе книги открыты, то (обратите внимание) ссылки в ячейках не содержат пути к файлу. Если же книгу-источник закрыть, то в ячейках со ссылками появится путь (уж так работает Excel). Если же переместить книгу-источник, то ссылка потеряется и Excel предложит указать новый путь к книге-источнику.
Поэтому, можно поступить так: при открытой книге, содержащей ссылки, открыть книгу-источник, затем сохранить ее по новому пути, затем закрыть. После таких действий, файл со ссылками будет искать книгу-источник в сохраненной папке, т.е. путь поменяется автоматически. Естественно, что все это можно сделать и программно.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#6 | ||
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
Большое спасибо за помощь!!!
Цитата:
Цитата:
Вот это самое интересное. Может быть подскажете, как сделать это программно? У меня есть несколько вариантов: 1) Забить в макросе ссылки на нужные файлы. (Но я не знаю, как это осуществить. Ибо ссылок будет тысячи. Писать вручную не вариант. Как можно это автоматизировать???) 2) Забить в макрос копирование листов из файлов-источников в главный файл. (Тогда подскажите мне какой функцией можно скопировать? Какой функцией скрыть листы на которые будет производиться копирование? Как потом удалить из книги все скрытые листы?) |
||
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Не совсем понятно, что у Вас не получается. Если нужно это:
Цитата:
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 10.07.2009 в 06:16. |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 200
|
![]()
У меня таким образом должны обрабатываться сотни файлов-десятки тысяч ссылок.
Я написал макрос,который тупо прикрепляет ссылку к ячейке. Код:
Можно его ускорить??? А может кто-нибудь помочь с моими предыдущими вопросами: 1) можно ли листу из макроса присвоить атрибут скрутый (то есть просто скрыть лист автоматически)??? 2) можно ли удалить все листы из книги, которым присвоен атрибут скрытый астоматически из макроса??? |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Скрыть лист с именем "Имя_листа" можно так:
Код:
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]() Цитата:
Во-вторых, можно макросом просмотреть по всем листам только те ячейки, которые содержат формулы. И, если есть ссылка, то заменять в ней путь. Так будет быстрее. Но я не думаю, что при переносе (копировании) Вашего главного файла в другую папку, содержащую файлы-источники, выполнять подобный макрос будет быстрее, чем разрешить Excel-ю обновить связи при открытии файла.
Чем шире угол зрения, тем он тупее.
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ссылка на Excel-файл через поле таблицы | megaten | БД в Delphi | 1 | 29.05.2009 01:18 |
Как сохранить файл в текущей папке? | sid99999 | Microsoft Office Excel | 2 | 22.05.2009 11:59 |
один файл, две программы... | Deathwatcher | Общие вопросы Delphi | 0 | 18.11.2008 12:39 |
Объединить в один файл | asale | Microsoft Office Excel | 2 | 12.02.2008 13:18 |
Сбор инфы с сайта. | Mss_Smith | Помощь студентам | 6 | 17.06.2007 16:26 |