Excel макрос на обновление связей

Добрый день!

У меня аналогичная задача, обновлять связи из других файлов (около сотни). Только, мне кажется, немного сложнее.

Есть файлы с данными за день, каждый отдельный файл типа: 01.12.2013.xls, 02.12.2013.xls и т.д.
Так же есть сводная месячная таблица типа: Декабрь.xls., где собираются данные за месяц из файлов по дням.

Причем самих файлов-дней изначально нет на диске. Еесть только ссылки на них, в сводной месячной таблице. Эти фалы присылаются по эл. почте, потовая программа сама сохраняет их в определенную папку. Да, важно, что не все файлы-дни могут быть подряд. Некоторых может не быть вообще, скажем за выходной день.

Естественно, что при открытии сводного файла Декабрь.xls. происходит обновление связей, и возникают ошибки, т.к. некоторых файлов еще нет. Пользователь ошибку игнорирует. И сводная таблица берет только данные из тех файлов, которые уже есть в наличии.

Использую Excel 2003.

Задача, периодически (скажем раз в 3 часа), обновлять связи и игнорировать возникающие ошибки.

И если появились новые файлы брать из них данные. Если делаю руками через меню: Правка >> Связи >> Обновить, так же возникает ошибка из-за отсутствующих файлов. Я её игнорирую, и все работает как надо.

В макросах я вообще не силен. Пытался делать макрос такого же типа как ВикторЧерный и запускать его вручную. Но макрос почему-то не обновляет данные из новых файлов. Он натыкается на первую же ошибку и останавливается.

Например, есть следующие файлы:
01.12.2013.xls
02.12.2013.xls
04.12.2013.xls
05.12.2013.xls
При открытии сводного файла Декабрь.xls, Excel актуализирует данные из всех доступных для чтения, в данный момент, файлов.

При выполнении макроса, обновляются только данные из файлов: 01.12.2013.xls и 02.12.2013.xls
А данные из файлов: 04.12.2013.xls и 05.12.2013.xls уже не актуализируются.

Решение, которое предложил Boroda у меня не работает.

Пробовал так же макрос, который бы открывал и снова открывал сводный файл. Но он тоже не работает. А кроме того его надо размещать в отдельном файле, что тоже не очень удобно.

Пробовал создавать файлы-пустышки. Чтобы не было ошибок. Но тогда почтовая программа не замещает уже существующие файлы и в сводную таблицу вообще ничего не попадает.

В общем, задача, у меня написать макрос, который будет через интервал времени автоматически актуализировать данные из внешних файлов. И игнорирую возникающие ошибки, проверять на доступность все существующие ссылки.

Посоветуйте, пожалуйста, что можно сделать!

Добрый день всем! Есть вроде бы простая задача, которую мне никак не удается решить.

Есть несколько книг: первая книга — самая простая, простой «справочник», наименование товара и его цена на сегодняшний день (под сотню-другую строк). Эта книга вручную корректируется довольно часто (цены же растут). Назовем ее Книга №1.

Второй тип книги — «основной расчет», в книге несколько Листов. На этих Листах формулы ссылаются на Первую книгу и содержат формулы «ВПР», ну то есть поиск цены для конкретного товара.

Книг второго типа несколько, в каждой — десятки Листов, на каждом Листе — сотни формул. Назовем эти книги «Книги №2.1, 2.2, 2.3 и т.д.)

И есть третий тип Книги. Я назвал ее «сводная». Она собирает во всех Книг второго типа данные. Формулы очень сложные. С помощью этого форума я смог сделать формулу практически универсальной вида ИНДЕКС (ПОИСКПОЗ…. ; ПОИСКПОЗ;….). Учитывая, что путь к файлам находится на сервере, типа X:Каталог номер 1Каталог номер 2[Название книги номер 1]Лист такой-то!…и так далее, формула с трудом умещается на 2 строчках. Но не суть. Назовем ее Книга №3.

Проблема: Книга третьего типа (№3) при открытии НЕ учитывает изменение данных в Книге №1. Чтобы результаты расчетов стали актуальными нужно открыть каждую Книгу 2.1…..2.10, ничего не меняя в ней сохранить её. И тогда уже открывать Книгу №3.

В принципе, наверное, это логично. С точки зрения Excel 2013. Но капец как неудобно.

Основная цель: чтобы после изменения значений цены в Книге №1 (и её закрытия) значения в Книге №3 были актуальными БЕЗ необходимости открывать Книги №2.1….2.10.

Я тут основательно погуглил «обновление связей макросом». Даже попробовал внедрить в Книгу №3 эти макросы. Разные. Результат нулевой. Что сделал:

1. В Книге №3 поставил при открытии Книги «Не задавать вопрос и обновлять связи».
2. В Книгах №2.1…2.10 сделал то же самое.
3. Попытался в Книгу №3 разные макросы вставлять. Тут самое трудное, т.к. я вообще ничего не понимаю в VBA. Всё, что могу — тупо скопипастить код.

Я нашел вот такие:

Первый — обновляет каждые x минут/секунд. Я сделал каждые 2 секунды. Результат — счетчик в ячейке X1 тикает, макрос работает, но

Код
Sub go_()
    Up_
End Sub
Sub Up_()
    Dim tn_
    ActiveWorkbook.RefreshAll
    tn_ = TimeSerial(Hour(Now) + 0, Minute(Now), Second(Now) + 2)
    Range("X1") = Range("X1") + 1
    Application.OnTime tn_, "Up_"
End Sub

И второй, вроде как должен решить мою задачу, но увы. Ничего не меняется. Кстати, скопировал сюда макрос и только что увидел, что расширение стоит .xls, а у меня все файлы .xlsx, и у Книги №3 .xlsm (из-за макросов), может быть причина в этом? Щас попробую … А, всё, увидел — там звездочка в конце.

Код
Sub update()
With Application 'операции с приложением/отключаем для повышения скорости работы макроса
.ScreenUpdating = False 'обновление экрана
.DisplayAlerts = False 'вывод системных сообщений
Папка = "C:тест"
'------------ Excel-файлы в этой папке ------------------
Имя = Dir(Папка & "*.xls*")
Do While Имя <> ""
With .Workbooks.Open _
(Filename:=Папка & Имя, UpdateLinks:=True)
'здесь Ваш макрос делает свое грязное дело
.Close SaveChanges:=True
End With
Имя = Dir
Loop
.ScreenUpdating = True 'обновление экрана
.DisplayAlerts = True 'вывод системных сообщений
End With
End Sub

Все эти коды я нашел на просторах инета, автор их — не я.

upd: изменил отображение кода

Skip to content

Как обновить все связи в открытых книгах

На чтение 2 мин. Просмотров 4.2k.

Что делает макрос: Ваш excel-файл может иметь подключения к внешним источникам данных (веб-запросы, соединений MSQuery, сводные таблицы и так далее). В этих случаях было бы полезным иметь возможность автоматически обновить все связи в открытых книгах.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как работает это код
  4. Как использовать

Как макрос работает

Этот макрос представляет собой простой сценарий, который использует метод RefreshAll. Этот метод обновляет все связи в данной книге или на листе. В этом случае, мы указываем всю книгу.

Код макроса

Private Sub Workbook_Open()
'Используйте метод RefreshAll
Workbooks(ThisWorkbook.Name).RefreshAll
End Sub

Как работает это код

В данном макросе мы используем объект ThisWorkbook. Этот объект представляет собой простой и безопасный способ, чтобы указать на текущую книгу. Существует разница между Thisworkbook и ActiveWorkbook.

  • Объект ThisWorkbook ссылается на книгу, которая содержит
    код.
  • Объект ActiveWorkbook относится к книге, которая в данный момент активна.

Они часто возвращают один и тот же объект, но если рабочая книга работает с кодом из неактивной рабочей книги, они возвращают различные объекты. Если вы не хотите случайно обновлять связи в других книгах, используете ThisWorkbook.

Как использовать

Для реализации этого макроса, вам нужно скопировать и вставить его в окно кода события Workbook_Open. Размещение макроса там позволяет ему запускаться каждый раз при открытии рабочей книги.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта, найти свой проект / имя рабочей книги и нажмите на знак плюс рядом с ней, чтобы увидеть все листы.
  3. Нажмите кнопку ThisWorkbook.
  4. Выберите Открыть событие в Event раскрывающемся списке.
  5. Введите или вставьте код во вновь созданном модуле.

Обновление всех связей в книге

Описание проблемы

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

Надстройка VBA-Excel содержит макрос с помощью которого можно быстро обновить все связи и пересчитать формулы. Для этого необходимо выполнить следующие действия:

  1. Открыть вкладку VBA-Excel на ленте.
  2. В группе Ячейки и диапазоны найти пункт меню Связи и в раскрывающемся списке выбрать Обновить все связи.

Принцип работы программы

Макрос проходит по всем связям, которые имеются в книге и последовательно открывает их в фоновом режиме. В момент открытия файла пересчитываются формулы. Файлы (связи) открываются в режиме для чтения и не влияют на одновременную работу с ними других пользователей. Процедура обновления практически незаметна (если конечно ваши файлы не по 10-15 Мб).

Управление обновлением внешних ссылок (связей)

Если вы создаете внешние ссылки на другие книги (также называемые ссылками), вы можете управлять тем, когда и когда они будут обновляться. Это важно, так как если кто-то другой изменит значение связанной ячейки, приложение Excel не обновит связь и отобразит новое значение, если не хотите его сообщить.

Книга, содержащая ссылки, называется конечной книгой, а книга, с которой она связана, называется исходной книгой. Вы можете связать несколько исходных книг с одной конечной книгой.

1. Конечная книга включает внешнюю ссылку (Link).

2. Внешняя ссылка (или ссылка) — это ссылка на ячейку или диапазон в исходной книге.

3. исходная книга содержит связанную ячейку или диапазон, а также фактическое значение, возвращаемое в конечную книгу.

Примечание: Несмотря на то, что количество книг, на которые можно указывать ссылки, не ограничено, обычно рекомендуется связываться с несколькими из них как можно чаще. В противном случае вы можете столкнуться с проблемами с производительностью при пересчете формул. Кроме того, можно перекрестные ссылки на книги, где каждый из них действует в качестве исходного и конечного, но это может быть запутанным и сложнее для управления.

Если исходная и конечная книги открыты на одном и том же компьютере, ссылки обновляются автоматически. Когда конечная книга открыта, а книга-источник не открыта, в области сведений о документе возможно появление запроса на обновление связей. Можно задать режим вывода этого запроса, а также режим обновления всех связей без вывода запроса. Вы также можете обновить только определенные ссылки, если книга содержит больше одной.

В следующих разделах будут рассмотрены наиболее распространенные параметры для управления обновлением связей.

Закройте все исходные книги. Если одна книга-источник будет открыта, а остальные закрыты, обновления не будут одинаковыми.

Откройте конечную книгу.

Чтобы обновить ссылки, на панели «уровень доверия» нажмите кнопку » Обновить«. Если вы не хотите обновлять ссылки (найдите X в правой части экрана), закройте панель управления безопасностью.

Откройте книгу, содержащую связи.

Перейдите в раздел данные > запросы & подключений > изменить ссылки.

Из списка Источник выберите связанный объект, который необходимо изменить.

Вы можете выбрать отдельные книги, удерживая нажатой клавишу CTRL, или любую из них с помощью сочетания клавиш CTRL + A.

Нажмите кнопку Обновить значения.

запросов & подключений > изменить ссылки» />

Найдите книгу, которую вы хотите использовать в качестве нового источника для внешней ссылки, и запомните ее расположение.

В конечной книге выделите ячейку с внешней ссылкой, которую вы хотите изменить.

В строка формул найдите ссылку на другую книгу, например К:репортс [Budget. xlsx], и замените ее на расположение новой исходной книги.

Вы можете решить, нужно ли обновлять ссылки в этой книге при открытии файла в соответствии с параметрами пользователя, не обновлять его при открытии файла или автоматически без запроса пользователя.

Предупреждение: Этот режим влияет на всех пользователей книги. Если отключить обновление связей и выдачу запроса, пользователи этой книги не будут знать, что данные устарели.

Перейдите в раздел данные > запросы & подключений > изменить ссылки.

Нажмите кнопку Запрос на обновление связей.

Выберите один из трех следующих вариантов:

Предоставление пользователям возможности выбора оповещения

Не показывать оповещение и не обновлять автоматические ссылки

Не показывать оповещения и ссылки для обновления.

Режим автоматического обновления или ручное обновление: для связей с формулами всегда задано значение «автоматически».

Даже если вы указали, что Excel не должен запрашивать, нужно ли обновлять ссылки, вы по-прежнему будете получать уведомления о наличии неработающих ссылок.

Когда вы открываете диалоговое окно Изменение связей (запросыданных > & подключения > изменить ссылки), у вас есть несколько вариантов работы с существующими ссылками. Вы можете выбрать отдельные книги, удерживая нажатой клавишу CTRL, или любую из них с помощью сочетания клавиш CTRL + A.

запросов & подключений > изменить ссылки» />

Это приведет к обновлению всех выбранных книг.

Этот параметр полезен, если вы хотите указать существующие ссылки на другой источник. Например, вы можете использовать книгу прошлого года и при запуске нового года нужно было указывать на новую книгу. Если выбрать команду изменить источник , откроется диалоговое окно Проводник, в котором можно перейти к новой исходной книге. Если книга содержит более одного листа, вам будет предложено указать, какой из них связать, просто щелкнуть нужный лист и нажать кнопку ОК.

Примечание: Книгу можно снова указать на саму себя, выбрав ее в диалоговом окне «изменить источник». При этом все ссылки на формулы будут связаны с исходной книгой.

Откроется исходная книга.

Важно: При разрыве связей с источником все формулы, использующие источник, заменяются на их текущее значение. Например, ссылка = SUM ([бюджетный. xlsx] годовой! C10: C25) будет преобразована в сумму значений в исходной книге. Поскольку это действие нельзя отменить, может потребоваться сначала сохранить версию файла.

На вкладке данные в группе запросы & подключения нажмите кнопку изменить связи.

В списке Источник выберите связь, которую требуется разорвать.

Вы можете выбрать отдельные книги, удерживая нажатой клавишу CTRL, или любую из них с помощью сочетания клавиш CTRL + A.

Щелкните элемент Разорвать.

Если в ссылке используется определенное имя, имя не удаляется автоматически, поэтому вы также можете удалить его.

Чтобы удалить имя, выполните указанные ниже действия.

Если вы используете диапазон внешних данных, параметр запроса также может использовать данные из другой книги. Может потребоваться проверить и удалить эти типы связей.

На вкладке Формулы в группе Определенные имена нажмите кнопку Диспетчер имен.

В столбце Имя выберите имя, которое следует удалить, и нажмите кнопку Удалить.

Это просто выводит уведомление в области изменение связей, независимо от того, является ли связанная книга действительной для источника. Оно должно отображаться как » ОК«, но если это не так, необходимо проверить исходную книгу. Во многих случаях исходная книга может быть перемещена или удалена, вырезанием ссылки. Если книга по-прежнему существует, вы можете повторно связать книгу с помощью параметра изменить источник .

Можно ли заменить единственную формулу вычисляемым значением?

Да. Формулы в Excel, вместо которых вводится их значение, удаляются без возможности восстановления. Если вы случайно заменили формулу со значением и хотите восстановить формулу, нажмите кнопку отменить сразу после ввода или вставки значения.

Нажмите клавиши CTRL + C , чтобы скопировать формулу.

Нажмите клавиши ALT + E + S + V , чтобы вставить формулу в качестве значения, или перейдите на вкладку Главная> буфер обмена> Вставить > Вставить значения.

Что делать, если вы не подключены к источнику?

Нажмите кнопку Не обновлять. Обновление из источника при отсутствии подключения к нему невозможно. Например, если книга-источник расположена в сети, а подключение к сети отсутствует.

Я не хочу, чтобы текущие данные были заменены новыми данными

Нажмите кнопку Не обновлять.

При попытке обновления в прошлый раз требовалось слишком много времени

Нажмите кнопку Не обновлять. Если не требуется получение текущих данных, можно сэкономить время, не обновляя все связи. После открытия книги нажмите на вкладке Данные в группе Подключения кнопку Изменить связи, а затем обновите связи только с нужными исходными файлами.

Кто-то другой создал книгу, и я не знаю, почему я вижу этот запрос

Щелкните не обновлятьи свяжитесь с владельцем книги. Вы также можете исследовать, какие ссылки находятся в книге. На вкладке данные в группе запросы & подключения нажмите кнопку изменить связи.

Я могу ответить на приглашение один и тот же путь и не хочу повторно видеть его

Можно ответить на запрос и запретить его вывод для этой книги в будущем.

Не отображать запрос и обновлять связи автоматически

Этот параметр влияет на все книги, которые открываются на компьютере. Пользователи, которые откроют книгу на другом компьютере, не будут затронуты.

Перейдите в раздел > Параметрыфайлов > Дополнительно.

В разделе Общие снимите флажок Запрашивать об обновлении автоматических связей. Если этот флажок снят, связи будут обновляться автоматически (без выдачи запроса).

Одинаковый запрос для всех пользователей этой книги

Предупреждение: Этот режим влияет на всех пользователей книги. Если отключить обновление связей и выдачу запроса, пользователи этой книги не будут знать, что данные устарели.

Перейдите в раздел данные > запросы & подключений > изменить ссылки > Выбери сообщение, а затем выберите нужный параметр.

Примечание: При наличии разорванных связей будет появляться оповещение об этом.

Что делать, если я использую запрос с параметрами?

Нажмите кнопку Не обновлять.

Закройте конечную книгу.

Откройте конечную книгу.

Нажмите кнопку Обновить.

Связь с параметрическим запросом нельзя обновить без открытия книги-источника.

Почему не удается выбрать параметр «вручную» для обновления определенной внешней ссылки?

Для связей с формулами всегда задано значение «автоматически».

Дополнительные сведения

Вы всегда можете попросить эксперта в сообществе Excel, получить техническую поддержку в сообществе Answersили предложить новую функцию или улучшение для голоса пользователя Excel.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Блог о программе Microsoft Excel: приемы, хитрости, секреты, трюки

Создание связи между таблицами Excel

Связь между таблицами Excel – это формула, которая возвращает данные с ячейки другой рабочей книги. Когда вы открываете книгу, содержащую связи, Excel считывает последнюю информацию с книги-источника (обновление связей)

Межтабличные связи в Excel используются для получения данных как с других листов рабочей книги, так и с других рабочих книг Excel. К примеру, у вас имеется таблица с расчетом итоговой суммы продаж. В расчете используются цены на продукт и объем продаж. В таком случае имеет смысл создать отдельную таблицу с данными по ценам, которые будут подтягиваться с помощью связей первой таблицы.

Когда вы создаете связь между таблицами, Excel создает формулу, которая включает в себя имя исходной книги, заключенную в скобки [], имя листа с восклицательным знаком на конце и ссылку на ячейку.

Создание связей между рабочими книгами

  1. Открываем обе рабочие книги в Excel
  2. В исходной книге выбираем ячейку, которую необходимо связать, и копируем ее (сочетание клавиш Ctrl+С)
  3. Переходим в конечную книгу, щелкаем правой кнопкой мыши по ячейке, куда мы хотим поместить связь. Из выпадающего меню выбираем Специальная вставка
  4. В появившемся диалоговом окне Специальная вставка выбираем Вставить связь.

Есть еще один, более простой, вариант создания связи между таблицами. В ячейку, куда мы хотим вставить связь, ставим знак равенства (так же как и для обычной формулы), переходим в исходную книгу, выбираем ячейку, которую хотим связать, щелкаем Enter.

Вы можете использовать инструменты копирования и автозаполнения для формул связи так же, как и для обычных формул.

Прежде чем создавать связи между таблицами

Прежде чем вы начнете распространять знания на свои грандиозные идеи, прочитайте несколько советов по работе со связями в Excel:

Делайте легко отслеживаемые связи. Не существует автоматического поиска всех ячеек, содержащих ссылки. Поэтому, используйте определенный формат, чтобы быстро идентифицировать связи с другими таблицами, в противном случае, документ, содержащий ссылки, может разрастись до такой степени, что его будет трудно поддерживать.

Автоматические вычисления. Исходная книга должна работать в режиме автоматического вычисления (установлено по умолчанию). Для переключения параметра вычисления перейдите по вкладке Формулы в группу Вычисление. Выберите Параметры вычислений –> Автоматически.

Избегайте циклические ссылки. Циклические связи – когда две рабочие книги содержат ссылки друг на друга – могут быть причиной медленного открытия и работы файла.

Обновление связей

Для ручного обновления связи между таблицами, перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи.

В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Обновить.

Разорвать связи в книгах Excel

Разрыв связи с источником приведет к замене существующих формул связи на значения, которые они возвращают. Например, связь =[Источник.xlsx]Цены!$B$4 будет заменена на 16. Разрыв связи нельзя отменить, поэтому прежде чем совершить операцию, рекомендую сохранить книгу.

Перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи. В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Разорвать связь.

Вам также могут быть интересны следующие статьи

5 комментариев

Спасибо! очень полезный материал!

Пожалуйста, исправьте опечатку:
«В исходной книге выбираем ячейку, которую необходимо связать, и копируем ее (сочетание клавиш Ctrl+V)»
Думаю должно быть «Ctrl+С»

Microsoft Excel

трюки • приёмы • решения

Как в Excel 2013 обновить ссылки и изменить источник связи

Общее назначение ссылок — это предотвращение появления одинаковых формул или данных на различных книгах и листах. В случае когда какая-либо книга содержит необходимую вам информацию, вы можете использовать ссылки для связывания данных без повторного их создания в другой книге.

Для успеха таких действий данные в книге-клиенте должны всегда быть согласованы с данными в книге-источнике. Для того чтобы увериться в этом, примите к сведению:

  1. Если обе книги — источник и клиент — открыты, Excel автоматически обновляет ссылки, как только данные в книге-источнике меняются.
  2. Если открыта книга-источник в тот момент, когда вы открываете книгу-клиент, Excel также производит автоматическое обновление.
  3. Если книга-источник закрыта в момент открытия книги, использующей ее данные. Excel выводит строку предупреждения о том, что автоматическое обновление ссылок отключено. В таком случае нажмите на кнопку Параметры, установите переключатель в положение Включить это содержимое и нажмите на кнопку ОК. Вы также можете включить автоматическое обновление ссылок для всех книг. Для этого нажмите на кнопку Файл, далее Параметры, Центр управления безопасностью, затем нажмите на кнопку Параметры центра безопасности, далее на вкладке Внешнее содержимое переведите переключатель в положение включить автоматическое обновление для всех связей в книге.
  4. Если вы не обновили ссылки при открытии зависимого документа, вы можете обновить их в любое время впоследствии. Для этого нерейдите на вкладку Данные ленты инструментов, далее нажмите на кнопку Изменить связи. На экране вы увидите диалоговое окно Изменение связей. В этом окне выберите необходимую связь и нажмите на кнопку Обновить.

Если имя документа, содержащего подгружаемые данные, изменилось, вам необходимо будет изменить и ссылку для поддержания данных в актуальном виде. Вы можете непосредственно изменить все связи, выполнив следующие шаги:

  1. Откройте книгу-клиент и активируйте ее. Перейдите на вкладку Данные ленты инструментов, затем нажмите на кнопку Изменить связи. На экране вы увидите диалоговое окно Изменение связей.
  2. Нажмите на ссылку (связь), с которой хотите работать.
  3. Нажмите на кнопку Изменить. Excel выведет на экран окно поиска/указания файлов, где вы можете указать путь к необходимому документу.
  4. Нажмите Закрыть для возврата к книге.

Курс для школьников, испытывающих страх перед математикой или потерявших к ней интерес. Занятия по подготовке к ЕГЭ по математике ведут два преподавателя: опытный психолог помогает вернуть интерес к учебе; опытный педагог-математик по специальной программе восполняет пробелы в знаниях. Ученики не только обучаются математике, но и получают стойкий психологический результат: уверенность в себе, возможность учиться дальше самостоятельно, интерес к предмету.

Настройка связей между документом Word и таблицей Excel

Очень многие в своей работе сталкиваются с необходимостью формировать отчёты, сводки, обобщающие документы на основе каких-то вычислений, расчетов, таблиц с исходными данными и их анализа. И часто для выполнения этих задач приходится прибегать к комбинации таких программных продуктов как Word (где формируется итоговый отчет для дальнейшей распечатки или пересылки кому-либо) и Excel (в котором собираются и обрабатываются исходные данные для отчета).

Если разовые задачи не вызывают особых вопросов, то формирование периодических отчетов порой доставляет немало проблем. Рутинное копирование одних и тех же табличек или графиков (с немного изменившимися данными) в одни и те же документы крайне утомляет. Но этот процесс можно автоматизировать. Как это сделать — читайте ниже.

Создание связи между Word и Excel

Самый быстрый и эффективный способ создать связи между файлами — скопировать нужную информацию из одного и вставить в другой, воспользовавшись инструментом «Специальная вставка» . Для этого нужно выделить таблицу, ячейку или диаграмму в Excel, перейти в Word, поставить курсор в нужную часть документа и:

— нажать правую кнопку мыши и выбрать пиктограмму с нужным способом вставки

— или выбрать на вкладке «Главная» команду «Вставить» (нажать на стрелочку под иконкой) и в появившемся списке выбрать «Специальная вставка», либо воспользоваться сочетанием клавиш «CTRL+ALT+V» . В появившемся окне необходимо активировать пункт «Связать» , выбрать вариант вставки и нажать ОК.

В результате вставленный объект будет связан с тем файлом, откуда он был скопирован, и при обновлении исходных данных можно будет быстро обновить связи в документе Word.

Выбор способа вставки данных

Как видно на рисунке 2, есть несколько способов вставки данных в документ. В повседневной работе придется выбирать, по сути, между двумя вариантами — вставить таблицу как картинку (без возможности ее форматирования) или как текст (а значит, с возможностью вносить изменения). Для диаграмм вариант всего один — картинка.

Кроме того, важно отличать связанные объекты от внедренных. Внедрение — операция, которая не рассматривается в этой статье. Суть ее в том, что в документ Word внедряется объект Excel, который позволяет работать с данными в табличном процессоре прямо из документа Word. При этом исходный файл и текстовый документ никак не связаны. Внедрение используется редко, так как сильно увеличивает размер файла.

В большинстве случаев при выборе способа вставки таблицы следует выбирать текстовый вариант, чтобы иметь возможность настроить форматирование под себя. Картинки можно вставлять, если форматирование в исходном документе Excel Вас полностью устраивает.

Бывают ситуации, когда приходится вставлять не всю таблицу, а данные из отдельных ячеек. Например, когда нужно вставить в предложение какую-то цифру или текст, которые есть в файле Excel и будут изменяться, или же когда таблица в Word составляется из нескольких разрозненных ячеек Excel (из разных таблиц, листов или даже книг). В таких случаях копируем данные ячеек в нужное место и выбираем способ вставки «Неформатированный текст».

Настройка способа обновления связей и работа с диспетчером связей

Вставленные связи можно обновлять несколькими способами. Например, если на вставленном объекте кликнуть правой кнопкой мыши, то в меню будет кнопка «Обновить связь», нажатие которой приведет к обновлению выбранной связи.

Можно задать параметры обновления сразу для всех объектов. Для этого нужно вызвать диспетчер связей документа. Проходим по пути «Файл»-«Сведения»-«Изменить связи с файлами» (данная команда доступна, когда в документе есть как минимум одна связь, а сам документ сохранен).

В диспетчере показаны все связи файла. В группе «Способ обновления связи» можно выбрать тот вариант, который более предпочтителен или вообще отключить обновление связей. Также для каждой связи можно задать настройку «Сохранять формат при обновлении». Она отвечает за то, чтобы выбранное Вами форматирование не слетало, когда вы обновите связь.

В этом же диспетчере можно разорвать связи, открыть или изменить источник.

Работа со связями через коды полей Word

По своей сути каждая связь представляет собой специальное поле Word. Если в документе со связями Вы нажмете ALT+F9 , то увидите, что вместо вставленных данных отобразятся коды этих полей.

Работа с ними открывает возможности, которые не предоставляет стандартный диспетчер связей. И хотя коды полей Word — широчайшая тема, выходящая далеко за рамки данной статьи, пару примеров их полезного использования мы приведем:

1) Изменение ссылок на документы сразу во всех связях

Связи с исходными документами осуществляются через прямые ссылки. Если Вы переложили исходный файл, то нужно будет переподтянуть все связи. В диспетчере связей придется делать это для каждой связи отдельно (даже если выбрать несколько — диспетчер будет по очереди предлагать заменять каждую ссылку). Если же вы перейдете в режим отображения кодов полей ( ALT+F9 ), то старые ссылки можно поменять на новые простой заменой ( CTRL+H или «Главная-Заменить» ), указав старый адрес и новый.

2) Использование именованных диапазонов для вставки таблиц

Если вы вставляете в Word таблицу из Excel, то ссылка на нее будет содержать конкретный диапазон ячеек. То есть, если вы добавите в таблицу строки или столбцы — то данные обновятся только в пределах жестко указанного диапазона. Диспетчер связей позволяет изменить диапазон вручную. Автоматическое же изменение можно настроить, задав в Excel именованный динамический диапазон (урок здесь и здесь , не разберетесь — пишите нашему боту в Telegram, поможем), а в файле Word в режиме правки кодов полей после этого нужно будет заменить прямые ссылки на ячейки на название именованного диапазона. Теперь при изменении размера исходной таблицы в Excel документ в Word обновится корректно.

Другие полезные тонкости работы с офисными программами всегда можно узнать здесь .

Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @KillOfBot

Студворк — интернет-сервис помощи студентам

Здравствуйте, столкнулся с такой проблемкой: есть формула =впр(k25;\svarogконтроль[18.01.13.xlsm]лист1′!$c$h;5;0) она обновляется только если заново открыть файл или через данныеизменить связи, а мне нужно чтобы связи обновлялись каждый раз после сохранения файла. Подскажите пожалуйста как сделать?
если подробно, то:
есть два файла, два плана, для контроля и отгрузки.
Я их связал впром, благодаря этому в файле отгрузки видно что проверено.
Если я открываю оба файла на компьютере то впр работает как и все формулы, обновляется моментально при каких либо изменениях, без всяких сохранений.
Но если файл контроля закрыт, то связи приходится обновлять вручную!
Двумя способами:
первый — закрыть и открыть файл отгрузки по новой, тогда связи обновятся
второй — через данныеизменить связиобновить связь
Файлы имеют общий доступ.

попробовал записать макрс, который обновляет связи

Visual Basic
1
2
ActiveWorkbook.UpdateLink Name:= _ 
"G:svarogконтроль[18.01.13.xlsm", Type:=xlExcelLinks

Как сделать чтобы он обновлял не зависимо от пути к файлу? ведь каждый новый план будет на другое число
Как сделать что бы макрос обновлял все связи, при сохранении файла?

Понравилась статья? Поделить с друзьями:
  • Excel макрос на каком языке
  • Excel макрос на защищенном листе
  • Excel макрос на защиту всех листов с паролем
  • Excel макрос на добавление ячейки
  • Excel макрос на добавление строки в таблицу