Обновление всех связей в книге
К сожалению, обновление связей в Excel не всегда работает корректно в случае если файлы-источники закрыты. Приходится держать файлы открытыми, что не всегда удобно.
Описание проблемы
Если создаваемый файл Excel ссылается на несколько книг, в которых часто меняются данные, то возникает потребность в их периодическом обновлении. Конечно, можно обновить все связи вручную по одной или перезапустить файл обновив все связи автоматически. Однако что делать если ссылок на файлы очень много? Перебирать по одной связи очень долго. А что делать если используются функции СУММЕСЛИ или СУММЕСЛИМН. В этом случае формулы не пересчитаются до тех пор пока файл из которого берутся данные закрыт. Держать с десяток файлов открытыми тоже не решение.
Решение
Надстройка VBA-Excel содержит макрос с помощью которого можно быстро обновить все связи и пересчитать формулы. Для этого необходимо выполнить следующие действия:
- Открыть вкладку VBA-Excel на ленте.
- В группе Ячейки и диапазоны найти пункт меню Связи и в раскрывающемся списке выбрать Обновить все связи.
Принцип работы программы
Макрос проходит по всем связям, которые имеются в книге и последовательно открывает их в фоновом режиме. В момент открытия файла пересчитываются формулы. Файлы (связи) открываются в режиме для чтения и не влияют на одновременную работу с ними других пользователей. Процедура обновления практически незаметна (если конечно ваши файлы не по 10-15 Мб).

Надстройка
VBA-Excel
Надстройка для Excel содержит большой набор полезных функций, с помощью которых вы значительно сократите время и увеличите скорость работы с программой.
Как обновить все связи в открытых книгах
Что делает макрос: Ваш excel-файл может иметь подключения к внешним источникам данных (веб-запросы, соединений MSQuery, сводные таблицы и так далее). В этих случаях было бы полезным иметь возможность автоматически обновить все связи в открытых книгах.
Как макрос работает
Этот макрос представляет собой простой сценарий, который использует метод RefreshAll. Этот метод обновляет все связи в данной книге или на листе. В этом случае, мы указываем всю книгу.
Код макроса
Private Sub Workbook_Open() 'Используйте метод RefreshAll Workbooks(ThisWorkbook.Name).RefreshAll End Sub
Как работает это код
В данном макросе мы используем объект ThisWorkbook. Этот объект представляет собой простой и безопасный способ, чтобы указать на текущую книгу. Существует разница между Thisworkbook и ActiveWorkbook.
- Объект ThisWorkbook ссылается на книгу, которая содержит
код. - Объект ActiveWorkbook относится к книге, которая в данный момент активна.
Они часто возвращают один и тот же объект, но если рабочая книга работает с кодом из неактивной рабочей книги, они возвращают различные объекты. Если вы не хотите случайно обновлять связи в других книгах, используете ThisWorkbook.
Как использовать
Для реализации этого макроса, вам нужно скопировать и вставить его в окно кода события Workbook_Open. Размещение макроса там позволяет ему запускаться каждый раз при открытии рабочей книги.
- Активируйте редактор Visual Basic, нажав ALT + F11.
- В окне проекта, найти свой проект / имя рабочей книги и нажмите на знак плюс рядом с ней, чтобы увидеть все листы.
- Нажмите кнопку ThisWorkbook.
- Выберите Открыть событие в Event раскрывающемся списке.
- Введите или вставьте код во вновь созданном модуле.
Как обновить связи в excel
Сообщений: 6 Регистрация: 01.01.1970
25.01.2010 16:26:09
Сегодня перешел с экселя 2003 на 2007. И сразу столкнулся с проблемой. У меня много документов содержат ссылки на внешние файлы. Раньше при открытии таких документов эксель спрашивал обновить ссылки или нет. Сейчас появляется предупреждение системы безопасности «автоматическое обновление ссылок отключено». Я, конечно, могу войти в раздел «изменить связи» и обновиться вручную, но это не рационально. В параметрах экселя стоит галочка на «запрашивать на обновлении автоматических связей», в меню «изменить связи» включено «пользователь указывает. «, параметры безопасности для связи в книге включен «запрос на автоматическое обновление связей в книге». При этом при открытии документа никаких запросов на обновление не выскакивает.
Как решить эту проблему? И вообще как настроитьсистему безопасности так, что бы она поменьше думала сама, а побольше спрашивала, а я уже сам решу обновлять мне связи и можно ли открывать файлы с макросами и т.п.
Исправление недействительных связей с данными
Если книга содержит ссылку на данные в книге или другом файле, перемещенного в другое место, вы можете исправить эту ссылку, обновив путь к исходный файл. Если вам не удалось найти документ, на который вы изначально ссылались, или нет доступа к нему, можно отключить в Excel обновление ссылки, отключив автоматическое обновление или удалив ссылку.
Важно: связанный объект гиперссылки — это не одно и то же. Следующая процедура не позволит исправить неправиленные гиперссылки. Дополнительные информацию о гиперссылках см. в теме «Создание и изменение гиперссылки».
Исправление неправиленной ссылки
Внимание: Это действие нельзя отменить. Перед началом этой процедуры может потребоваться сохранить резервную копию книги.
- Откройте книгу, которая содержит неверную связь.
- На вкладке «Данные» нажмите кнопку «Изменить связи». Команда «Изменить связи» недоступна, если книга не содержит ссылок.
- В поле «Исходный файл» выберите неправиленную ссылку, которую вы хотите исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из , удерживая нажатой .
Удаление неявной ссылки
При разрыве связи все формулы, которые ссылаются на исходный файл, преобразуются в их текущее значение. Например, если формула =СУММ([Budget.xls]Годовой! C10:C25) — 45, после того как связь не будет нарушена, формула будет преобразована в 45.
- Откройте книгу, которая содержит неверную ссылку.
- На вкладке «Данные» нажмите кнопку «Изменить связи». Команда «Изменить связи» недоступна, если книга не содержит ссылок.
- В поле «Исходный файл» выберите ненужную ссылку, которую нужно удалить.
Примечание: Чтобы удалить несколько ссылок, щелкните каждую из , удерживая нажатой кнопку мыши.
Важно: связанный объект гиперссылки — это не одно и то же. Следующая процедура не позволит исправить неправиленные гиперссылки. Подробнее о гиперссылках: создание, изменение и удаление гиперссылки
Исправление неправиленной ссылки
Внимание: Это действие нельзя отменить. Перед началом этой процедуры может потребоваться сохранить резервную копию книги.
- Откройте книгу, которая содержит неверную связь.
- В меню Правка выберите пункт Связи. Если книга не содержит ссылок, команда «Ссылки» недоступна.
- В поле «Исходный файл» щелкните неправиленную ссылку, которую нужно исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из , удерживая нажатой .
Отключение автоматического обновления связанных данных
- Откройте книгу, которая содержит неверную связь.
- В меню Правка выберите пункт Связи. Если книга не содержит ссылок, команда «Ссылки» недоступна.
- В поле «Исходный файл» щелкните неправиленную ссылку, которую нужно исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из , удерживая нажатой .
Удаление неявной ссылки
При разрыве связи все формулы, ссылаясь на исходный файл, преобразуются в их текущее значение. Например, если формула =СУММ([Budget.xls]Годовой! C10:C25) — 45, после того как связь не будет нарушена, формула будет преобразована в 45.
- Откройте книгу, которая содержит неверную связь.
- В меню Правка выберите пункт Связи. Если книга не содержит ссылок, команда «Ссылки» недоступна.
- В поле «Исходный файл» щелкните ненужную ссылку, которую нужно удалить.
