Статьи из блога

Статьи из блога

Связывание таблиц Word и Excel

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

 

Ранее описанный способ вставки таблицы как графического объекта имеет определенные ограничения, такие, как: невозможность изменения данных, искажения при масштабировании, нечитаемость мелкого шрифта и т.д.

 

Второй предложенный способ - вставлять листы Excel непосредственно в документ, - приводит к неоправданному "раздуванию" файла, кроме того, внедренные объекты иногда ведут себя непредсказуемо.

 

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

 

Сейчас мы свяжем между собой таблицы Еxcel и Word, причем так, чтобы изменения в исходной таблице приводили к изменениям в таблице документа. Итак, у нас есть исходная таблица с расчетами:

 

Таблица с расчетами

 

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

 

Пустая таблица

 

Заголовки не набираем, а специально оставляем пустые строки.

После проделанных операций, на экране должно быть открыты оба окна: окно MS Word с заготовкой и окно MS Excel с расчетной таблицей. Можем приступать к связыванию. Суть его состоит в том, чтобы последовательно, одна за другой, связать ячейки таблицы с необходимыми позициями в текстовом документе.

 

Для этого:

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

     

    Окно Специальная вставка
  5.  

  6. Устанавливаем переключатель в положение Связать.
  7. В списке Как выбираем Неформатированный текст.
  8. Щелчком по кнопке ОК закрываем окно.

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

 

Таблица

 

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

 

Режим обновления также можно настраивать. Для этого необходимо:

  1. Выбрать любое вставленное значение в Word и нажать правую кнопку мыши:

     

    Контекстное меню
  2.  

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

     

    Окно Связи

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

 

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

]]> twitter.com facebook Вконтакте Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>


Понравилась статья, проголосуй:



Комментариев: 30

  1. Леонид Бродский
    24.04.2007 в 13:02 | #1

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

  2. Виталий Шаповал
    25.04.2007 в 14:33 | #2

    Эта возможность существовала еще в 97 Офисе. Однако мощность компьютеров на тот момент не позволяла ее использовать в полной мере. Приходилось записку печатать кусками - текст из Wоrd, таблицы из Excel.

    На данный момент это уже не проблема smile

  3. 25.04.2007 в 16:39 | #3

    Виталий, поступил вопрос: "Можно ли таким способом связывать не в

    таблицы одинаковой структуры , А, к примеру, там, где это необходимо??

    А то я попытался и мне выдается ошибка «Ошибка связи». Заранее благодарен!!!"?

  4. Виталий Шаповал
    26.04.2007 в 08:30 | #4

    Таблицы были показаны лишь как характерный пример. А связывать можно ЛЮБЫЕ ячейки Excel с ЛЮБОЙ позицией в тексте. При этом образуется специальное поле в Word, по аналогии с операцией ВСТАВКА->ПОЛЕ.

    Сложно говорить заочно. Пришлите файлы.

  5. Виталий Шаповал
    26.04.2007 в 08:35 | #5

    Насчет одинаковой структуры. Имеется в виду, что если уже ПОСЛЕ связки "отрихтовать" исходную таблицу в Excel (удалить столбцы/ячейки, переместить и т.д.), то "поплывут" связи в таблице Word.

  6. Александра
    22.04.2008 в 13:16 | #6

    виталий, статья конечно интересная и полезная, а я ищу ответ вот на какой вопрос: "выполнение расчетов в таблицах word и excel.их сравнительные характеристики," вы не могли бы мне помочь найти ответ?

  7. Михаил Лурье
    08.05.2008 в 14:36 | #7

    Виталий, способ действительно интересный. Но я столкнулся вот с какой проблемой - когда файловая структура достаточно ветвиста, то абсолютные ссылки на файлы очень длинны, тем более если папки перемещать. Может ли MS Word при этом понимать ссылки относительные?

  8. натали
    27.06.2008 в 03:28 | #8

    А можно спомощью макроса связать эксель и ворд

  9. Виталий Шаповал
    27.06.2008 в 09:58 | #9

    2Натали

    Естественно можно. С точки зрения VBA Эксель и Ворд - просто разные ветки одного корня.

    Пишите на почту или в ICQ 270396958

  10. Мария
    13.08.2008 в 16:16 | #10

    А у меня пишет в Word - Ошибка связи!

  11. Мария
    13.08.2008 в 16:22 | #11

    Заработало когда выбрала не "Неформатируемый текст" ,а "формат HTML"

  12. Мария
    13.08.2008 в 16:24 | #12

    А вообще удобная очень вещь! Спасибо!

  13. BonuSIS
    10.10.2008 в 15:57 | #13

    Возникла такая проблема. Формирую документ ворд, в начале которого заполняется таблица. Данные из этой таблицы разкидываются по всему документу по средством связей. Стоит лишь перекинуть этот документ в другую папку - связи теряются. Т.е. связи абсолютные. Существует ли метод формирования относительных связей без программирования в VBA.

  14. BonuSIS
    14.10.2008 в 18:56 | #14

    В доплнение сказанному выше напишу, что нету в ворде способа формирования относительных связей ф-цией "Правка\Специальная вставка". Единственный выход - программирование в VBA.

  15. Sergey
    23.01.2009 в 19:50 | #15

    Благодарю автора статьи, это поможет мне сэкономить неделю работы))

  16. Aлександр
    26.01.2009 в 19:50 | #16

    а киньте все таки кусок кода как абсолютные ссылки на относительные поменять!

  17. ali
    31.01.2009 в 23:51 | #17

    Братва привет.А не подскажете прогу чтобы написанное в Excel автоматически отображалось в другом отдельном документе Word (то есть. имеется две разные таблицы одна в Excel другая в Word а вписать данные нужно в определенные графы в обоих документах).команды Связать,Скопировать с одного на другое дело нудное так как опись уж больно большой.скачал Гененратор Документов ver 1.1 помоему подходит только инсталировать невозможно.(качал с разных сайтов).может кто подкинет инфу?

  18. Vladimir
    17.02.2009 в 22:20 | #18

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

  19. Vladimir
    18.02.2009 в 12:34 | #19

    Почему то часть связей в самом конце документа не хочет обновляться. Жму на связи, вместо обновить связь выходит только объек. Жму на эту кнопку, пишет Объект поврежден либо стал недоступен. Почему так происходит?

  20. Алексей
    11.07.2009 в 03:05 | #20

    ...прогу ...написанное в Excel автоматически отображалось в отдельном документе Word ...скачал Гененратор Документов

    В Ворде аналогичная функция "Слияние"

  21. 08.01.2010 в 12:39 | #21

    Комментарий от 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

  22. Юрий Катрук
    09.01.2010 в 22:58 | #22

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

    При этом при перемещении ячейки в Excel (вставка-удаление строк-столбцов) ссылка останется "живой".

    При необходимости связать Word c ячейками из другого подобного файла Excel (обычно новый файл создается копированием старого с внесением изменений) достаточно после нажатия правой кнопки мыши на любом вставленном значении выбрать "Связанный объект Лист > Связи..." затем "Сменить связи..." и выбрать новый файл Excel столько раз, сколько у вас связанных ячеек. Word свяжет документ с ячейками в новом файле Excel которые имеют такие же имена, хотя и находятся в других местах листа Excel.

  23. Варнаков антон
    08.03.2010 в 12:08 | #23

    Подскажите решение проблемы. создан документ в word 2007 имеются ссылки на ячейки в excel. в wordе ссылки стоян в формулы пока офис открыт все работает исправно стоит сохранить докуент word и открыть за нова все ссылки заменяются на кучу вопросов и перестою работать. а ссылки не в формулах продолжают работать.

  24. Алла
    23.07.2010 в 18:34 | #24

    Огромное спасибо! Классно помогает решить возникающие вопросы по работе. Экономит время и нервы

  25. Alexandr
    07.08.2010 в 14:51 | #25

    Здравствуйте. Подскажите можно ли связать документ Wrd c другим документом, например ссылки на литературу в другом документе. Спасибо.

  26. 14.11.2010 в 23:23 | #26

    Здравствуйте! Мне нужно, наоборот, нарисованную wordовскую табличку преобразовать в exelевскую...Это возможно? Очень бы хотелось, т.к. иначе придётся перепечатывать или переносить по фразам 172 страницы текста...

  27. 03.06.2011 в 00:38 | #27

    Здравствуйте!

    Интересная статья, я давно использую этот способ. С появлением Office 2007 в Word'е появился более удобный и гибкий редактор формул, главным преимуществом которого является возможность связывания данных с таблицей Excel, но возникла следующая проблема: при первом редактировании и работой с документом Word всё работает прекрасно, но при повторном открытии, если обновить связи, во всех формулах в Word'е выдаются ошибки "Ошибка! Закладка не определена.", помогает лишь повторная вставка связи и только на данную сессию работы с документом. Структура Excel'евского файла не меняется.

    Встречались ли Вы с подобным поведением, и как с этим бороться? Это глюк офиса? Или я что-то не так делаю?

  28. Владимир
    05.11.2011 в 00:55 | #28

    После связывания данных с таблицей Excel, следующая проблема: запятые в числах начали в Word отображаться точками. Помогите!

  29. Елизавета
    28.11.2011 в 18:06 | #29

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

  30. Николай
    26.09.2012 в 17:04 | #30

    Подскажите, возможно ли сделать свзязь между частью ячейки excel и World!?

Оставьте комментарий!

(обязательно)

^ Наверх