Статьи из блога
Статьи из блога
Связывание таблиц Word и Excel
Метки: excel | связи | связывание | таблицы | форматирование
Понедельник, 23 апреля 2007 г.
Просмотров: 55830
Подписаться на комментарии по RSS
Версия для печати
Этот метод можно рекомендовать, когда возникает необходимость переноса данных из таблиц Еxcel для вставки в текстовый документ.
Ранее описанный способ вставки таблицы как графического объекта имеет определенные ограничения, такие, как: невозможность изменения данных, искажения при масштабировании, нечитаемость мелкого шрифта и т.д.
Второй предложенный способ - вставлять листы Excel непосредственно в документ, - приводит к неоправданному "раздуванию" файла, кроме того, внедренные объекты иногда ведут себя непредсказуемо.
Однако, используя технологию Automation, объекты можно не только внедрять, но и связывать.
Сейчас мы свяжем между собой таблицы Еxcel и Word, причем так, чтобы изменения в исходной таблице приводили к изменениям в таблице документа. Итак, у нас есть исходная таблица с расчетами:

Создаем в Word точно такую же, но пустую таблицу:

Заголовки не набираем, а специально оставляем пустые строки.
После проделанных операций, на экране должно быть открыты оба окна: окно MS Word с заготовкой и окно MS Excel с расчетной таблицей. Можем приступать к связыванию. Суть его состоит в том, чтобы последовательно, одна за другой, связать ячейки таблицы с необходимыми позициями в текстовом документе.
Для этого:
- Перейдите на лист Еxcel и сделайте текущей ячейку, которую необходимо связать с документом (начнем с В1).
- Выполняем копирование ячейки (меню Правка-Копировать либо сочетание клавиш Ctrl+C).
- Переходим в окно с документом Word и помещаем курсор в позицию для вставки. В данном случае это будет заголовок, расположенный через одну строку над таблицей.
- В меню Word выбираем Правка-Специальная вставка. В результате откроется диалоговое окно Специальная вставка, где в области Источник (в левом верхнем углу) указаны координаты выделенной ячейки:

- Устанавливаем переключатель в положение Связать.
- В списке Как выбираем Неформатированный текст.
- Щелчком по кнопке ОК закрываем окно.
Таким образом мы установили связь между текстовой позицией в документе и ячейкой в рабочем листе. Необходимо сразу отметить, что с объединенными ячейками связывание работает не совсем корректно. Аналогично необходимо связать оставшиеся ячейки. Окончательно документ должен выглядеть так:

Теперь мы имеем возможность форматировать таблицу, как нам удобно, при этом изменение данных будет происходить автоматически. Также можно отметить, что таблицу в Word можно использовать как сводную, занося в нее значения из разных листов и даже книг Еxcel.
Режим обновления также можно настраивать. Для этого необходимо:
- Выбрать любое вставленное значение в Word и нажать правую кнопку мыши:

- В контекстном меню выбрать Связанный объект Лист-Связи.
- В открывшемся окне можно выбирать Способ обновления связи:

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

Поиск
Рубрики
Подписка
Читают
Обсуждают
Форум
страницы
сайты
статистика
Комментариев: 30
Очень полезная статья! Сам бы ни за что не додумался, что можно связывать отдельные ячейки.
Эта возможность существовала еще в 97 Офисе. Однако мощность компьютеров на тот момент не позволяла ее использовать в полной мере. Приходилось записку печатать кусками - текст из Wоrd, таблицы из Excel.
На данный момент это уже не проблема
Виталий, поступил вопрос: "Можно ли таким способом связывать не в
таблицы одинаковой структуры , А, к примеру, там, где это необходимо??
А то я попытался и мне выдается ошибка «Ошибка связи». Заранее благодарен!!!"?
Таблицы были показаны лишь как характерный пример. А связывать можно ЛЮБЫЕ ячейки Excel с ЛЮБОЙ позицией в тексте. При этом образуется специальное поле в Word, по аналогии с операцией ВСТАВКА->ПОЛЕ.
Сложно говорить заочно. Пришлите файлы.
Насчет одинаковой структуры. Имеется в виду, что если уже ПОСЛЕ связки "отрихтовать" исходную таблицу в Excel (удалить столбцы/ячейки, переместить и т.д.), то "поплывут" связи в таблице Word.
виталий, статья конечно интересная и полезная, а я ищу ответ вот на какой вопрос: "выполнение расчетов в таблицах word и excel.их сравнительные характеристики," вы не могли бы мне помочь найти ответ?
Виталий, способ действительно интересный. Но я столкнулся вот с какой проблемой - когда файловая структура достаточно ветвиста, то абсолютные ссылки на файлы очень длинны, тем более если папки перемещать. Может ли MS Word при этом понимать ссылки относительные?
А можно спомощью макроса связать эксель и ворд
2Натали
Естественно можно. С точки зрения VBA Эксель и Ворд - просто разные ветки одного корня.
Пишите на почту или в ICQ 270396958
А у меня пишет в Word - Ошибка связи!
Заработало когда выбрала не "Неформатируемый текст" ,а "формат HTML"
А вообще удобная очень вещь! Спасибо!
Возникла такая проблема. Формирую документ ворд, в начале которого заполняется таблица. Данные из этой таблицы разкидываются по всему документу по средством связей. Стоит лишь перекинуть этот документ в другую папку - связи теряются. Т.е. связи абсолютные. Существует ли метод формирования относительных связей без программирования в VBA.
В доплнение сказанному выше напишу, что нету в ворде способа формирования относительных связей ф-цией "Правка\Специальная вставка". Единственный выход - программирование в VBA.
Благодарю автора статьи, это поможет мне сэкономить неделю работы))
а киньте все таки кусок кода как абсолютные ссылки на относительные поменять!
Братва привет.А не подскажете прогу чтобы написанное в Excel автоматически отображалось в другом отдельном документе Word (то есть. имеется две разные таблицы одна в Excel другая в Word а вписать данные нужно в определенные графы в обоих документах).команды Связать,Скопировать с одного на другое дело нудное так как опись уж больно большой.скачал Гененратор Документов ver 1.1 помоему подходит только инсталировать невозможно.(качал с разных сайтов).может кто подкинет инфу?
Подскажите, а можно ли значения из ячеек икселя вставить как то в формулу ворда 2007. Т. е. например есть в ворде квадратный корень, как под него засунуть число из ячейки ворда. Связь теряется по ходу когда этим способом делаю, тк обновления не происходит
Почему то часть связей в самом конце документа не хочет обновляться. Жму на связи, вместо обновить связь выходит только объек. Жму на эту кнопку, пишет Объект поврежден либо стал недоступен. Почему так происходит?
В Ворде аналогичная функция "Слияние"
Комментарий от kortosh:
Макрос, упрощающий связывание таблиц Word и Excel.
Выбираются ячейки в Excel и Word (можно только часть таблицы). После запуска, макрос сам формирует связи.
Sub CopyFromExcel() 'Связывание таблиц Word и Excel по ячейкам. Необходимо выделить ячейки в Excel и соответствующиие им ячейки в Word Dim objExcel, c, i 'Если ошибка - В пункте меню Tools -> References отметить Microsoft Excel Object Library Set objExcel = GetObject(, "Excel.Application.11") For Each c In Selection.Cells i = i + 1 objExcel.Selection.Cells(i).Copy c.Select Selection.PasteExcelTable True, True, True Next c End SubЕсли ячейка Excel перед созданием связанной ссылки для Word имела собственное имя (имя для ячейки можно задать в поле, находящемся левее строки формул) то после специальной вставке в Word сслыка будет не на адрес ячейки в формате R1C1 а на собственное имя ячейки (имя можно задавать и с использованием русских букв).
При этом при перемещении ячейки в Excel (вставка-удаление строк-столбцов) ссылка останется "живой".
При необходимости связать Word c ячейками из другого подобного файла Excel (обычно новый файл создается копированием старого с внесением изменений) достаточно после нажатия правой кнопки мыши на любом вставленном значении выбрать "Связанный объект Лист > Связи..." затем "Сменить связи..." и выбрать новый файл Excel столько раз, сколько у вас связанных ячеек. Word свяжет документ с ячейками в новом файле Excel которые имеют такие же имена, хотя и находятся в других местах листа Excel.
Подскажите решение проблемы. создан документ в word 2007 имеются ссылки на ячейки в excel. в wordе ссылки стоян в формулы пока офис открыт все работает исправно стоит сохранить докуент word и открыть за нова все ссылки заменяются на кучу вопросов и перестою работать. а ссылки не в формулах продолжают работать.
Огромное спасибо! Классно помогает решить возникающие вопросы по работе. Экономит время и нервы
Здравствуйте. Подскажите можно ли связать документ Wrd c другим документом, например ссылки на литературу в другом документе. Спасибо.
Здравствуйте! Мне нужно, наоборот, нарисованную wordовскую табличку преобразовать в exelевскую...Это возможно? Очень бы хотелось, т.к. иначе придётся перепечатывать или переносить по фразам 172 страницы текста...
Здравствуйте!
Интересная статья, я давно использую этот способ. С появлением Office 2007 в Word'е появился более удобный и гибкий редактор формул, главным преимуществом которого является возможность связывания данных с таблицей Excel, но возникла следующая проблема: при первом редактировании и работой с документом Word всё работает прекрасно, но при повторном открытии, если обновить связи, во всех формулах в Word'е выдаются ошибки "Ошибка! Закладка не определена.", помогает лишь повторная вставка связи и только на данную сессию работы с документом. Структура Excel'евского файла не меняется.
Встречались ли Вы с подобным поведением, и как с этим бороться? Это глюк офиса? Или я что-то не так делаю?
После связывания данных с таблицей Excel, следующая проблема: запятые в числах начали в Word отображаться точками. Помогите!
как перенести из Exsel в Word таблицу так, чтобы определенное слово в ячейках таблицы в Экселе осталась, а ворде не отображалась. при этом нужно, чтобы таблицы были связанны, то есть, что я делаю в Экселе отображается в Ворде.
Подскажите, возможно ли сделать свзязь между частью ячейки excel и World!?