Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2010, 19:35   #1
kain151
Пользователь
 
Регистрация: 10.03.2010
Сообщений: 19
По умолчанию Из Wordа запустить Exel, скопировать таблицу

Здравствуйте!
Посмотрел похожие темы, не разобрался ( Поэтому создаю отдельную.
Подскажите, пожалуйста, код для макроса Wordа, который позволит (в порядке выполнения):

1. из Wordа (при выполнении макроса) запустить документ Exel, с определенным именем, в определенной папке
2. скопировать в Exel таблицу(ы)
3. создать новый документ Word
4. вставить в Word, скопированную таблицу(ы) из Exel.

Спасибо!
kain151 вне форума Ответить с цитированием
Старый 23.03.2010, 20:24   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Код макроса подскажет запись макроса!

Сервис → Макрос → Начать запись (до 2007) либо
Вид → Макросы → Запись макроса...

Но тут (мне) пока неясно, как, в ходе записи, выделять таблицы.
Код:
Sub Макрос1()

    For i = 1 To ActiveDocument.Tables.Count
    ActiveDocument.Tables(i).Select
    Selection.Copy 'копирование i-й таблицы активного документа Word'
    
    'здесь код открытия документа Excel - пока не знаю'
    
    Next
    
End Sub
И вообще, зачем «кувыркание» туда-сюда? Можно же сразу вставить таблицу ExCel.

Всё же я произвёл, пока вручную, те 4 действия, что вы хотите автоматизировать. И возник встречный вопрос: что это даёт?

Последний раз редактировалось Sasha_Smirnov; 24.03.2010 в 12:00.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 24.03.2010, 01:15   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Диапазон таблицы известен? Тогда даже открывать ничего не нужно:
Добавляем в место курсора таблицу из файла Excel "Книга1", лежащего в одной папке с документом, в котором выполняется макрос. Таблица находится на листе "Лист1" и имеет адрес: R1C1:R20C14:
Код:
Selection.Fields.Add Selection.Range, _
  wdFieldLink, _
  "Excel.Sheet.8 """ & Replace(ThisDocument.Path & "\", "\", "\\") & "Книга1.xls""" & Space(1) & """Лист1!R1C1:R20C14""" & Space(1) & "\a \p"
Думаю, что смысл понятен
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 25.03.2010, 00:25   #4
kain151
Пользователь
 
Регистрация: 10.03.2010
Сообщений: 19
По умолчанию

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

Sasha_Smirnov, я, наверное, не очень четко сформулировал мысль:
есть exel документ, в котором таблицы (либо всего одна, либо все идут одна над другой - сверху вниз). Эту самую таблицу(ы) и нужно, запустив макрос в ворде скопировать в сам ворд. Т.е. открыть документ exel, создать новый документ ворд, скопировать таблицу(ы) в exel и вставить в word.

viter.alex, дипазон (если я правильно понял, размер "от" "до") - не известен. Каждый раз разный.
kain151 вне форума Ответить с цитированием
Старый 25.03.2010, 00:42   #5
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

То, что диапазон каждый раз разный это и ежу понятно. Но ведь как-то ты собираешься его копировать, а значит адрес, лист и книга будут известны
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать таблицу из файла PDF в Word Олег* Microsoft Office Word 3 17.01.2010 13:02
Явление Wordа. Часть 2 Busine2009 Microsoft Office Word 2 26.05.2009 21:44
Как скопировать или быстро просмотреть таблицу с LookUp? Rain9 Общие вопросы C/C++ 3 28.10.2008 12:33
как вставить таблицу Exel doncova1 БД в Delphi 1 19.11.2006 16:07