Страницы: 1 2 3 След.
RSS
Из Excel в Word
 
как это реализовать с помощью макроса? необходимо перенести в ворд диаграмму и выделеный диапазон ячеек так чтобы сохранились границы
 
ребят ну подскажите если кто знает, очень надо.  
хотябы через какие методы можно перетащить в ворд
 
{quote}{login=zet3xxx}{date=15.03.2008 04:36}{thema=}{post}ребят ну подскажите если кто знает, очень надо.  
хотябы через какие методы можно перетащить в ворд{/post}{/quote}  
---  
Здесь это уже обсуждалось, впрочем, чего только здесь не обсуждалось :)  
 
Копируем Excel-диаграмму как рисунок:  
1. Выделить диаграмму.  
2. Зажать Shift  
3. Мышой сходить в меню: Правка - Копировать рисунок - OK  
4. Отпустить Shift  
5. Зайти в Word и вставить рисунок диаграммы  
 
Аналогично можно скопировать и рисунок таблицы.  
 
Таблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. при этом останется возможность ее редактирования в Word-e.  
---  
ZVI
 
{quote}{login=ZVI}{date=16.03.2008 04:18}{thema=Re: Из Excel в Word}{post}{quote}{login=zet3xxx}{date=15.03.2008 04:36}{thema=}{post}ребят ну подскажите если кто знает, очень надо.  
хотябы через какие методы можно перетащить в ворд{/post}{/quote}  
---  
Здесь это уже обсуждалось, впрочем, чего только здесь не обсуждалось :)  
 
Копируем Excel-диаграмму как рисунок:  
1. Выделить диаграмму.  
2. Зажать Shift  
3. Мышой сходить в меню: Правка - Копировать рисунок - OK  
4. Отпустить Shift  
5. Зайти в Word и вставить рисунок диаграммы  
 
Аналогично можно скопировать и рисунок таблицы.  
 
Таблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. при этом останется возможность ее редактирования в Word-e.  
---  
ZVI{/post}{/quote}  
---  
Так как вопрос был о макросе, то следует добавить, что макрос для копирования как рисунка чего-то выдленного в Excel-е можно получить макрорекодером.    
 
Результат будет похож на это:  
 
Sub Макрос1()  
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture  
End Sub  
 
---  
ZVI
 
{quote}{login=ZVI}{date=16.03.2008 04:29}{thema=Re: Из Excel в Word}{post}{quote}{login=ZVI}{date=16.03.2008 04:18}{thema=Re: Из Excel в Word}{post}{quote}{login=zet3xxx}{date=15.03.2008 04:36}{thema=}{post}ребят ну подскажите если кто знает, очень надо.  
хотябы через какие методы можно перетащить в ворд{/post}{/quote}  
---  
Здесь это уже обсуждалось, впрочем, чего только здесь не обсуждалось :)  
 
Копируем Excel-диаграмму как рисунок:  
1. Выделить диаграмму.  
2. Зажать Shift  
3. Мышой сходить в меню: Правка - Копировать рисунок - OK  
4. Отпустить Shift  
5. Зайти в Word и вставить рисунок диаграммы  
 
Аналогично можно скопировать и рисунок таблицы.  
 
Таблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. при этом останется возможность ее редактирования в Word-e.  
---  
ZVI{/post}{/quote}  
---  
Так как вопрос был о макросе, то следует добавить, что макрос для копирования как рисунка чего-то выдленного в Excel-е можно получить макрорекодером.    
 
Результат будет похож на это:  
 
Sub Макрос1()  
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture  
End Sub  
 
---  
ZVI{/post}{/quote}  
автор сам то пробовал записать макрос который вставлял бы в ворд???  
аблицу Excel также можно выделить и скопировать обычным способом (Ctrl-C), а затем вставить (Ctrl-V) в Word. -- это все не работает!!! там необходимо создать объект и при помощи методов думаю как то можно передать это все в созданый объект ворд. например для передачи текста используется    
.TyprText "......"
 
---  
Анониму, что не сдержался:  
1. Ну не хватило человеку слов и забора! – Сочувствую.  
2. Если Вам действительно нужна помощь, то напишите внятно, что у Вас не получается, может кто и захочет помочь.  
 
Для zet3xxx в прилагаемом архиве есть Word-документ “ИЗ_EXCEL_В_WORD.DOC”, в котором различными методами из Excel перенесена таблица с диаграммой: посмотрите, какой из этих методов Вам подходит.  
 
Для тех, у кого есть проблемы с копированием выделенного фрагмента в Word и Powerpoint, прилагается небольшая надстройка ZVI_CopyFromExcel.XLA.  
Позволяет копировать 3-мя способами: как обычно, как рисунок и как объект.  
Устанавливается через меню: Сервис – Надстройки – Обзор.  
Или просто загружается с разрешением макросов.  
Вызов надстройки – с помощью кнопки (W) в правой части панели управления “Стандартная”.  
 
Надстройка протестирована с Office 2003. но вроде должна работать и с другими офисами.  
---  
ZVI
 
{quote}{login=ZVI}{date=17.03.2008 06:47}{thema=Надстройка копирования из Excel в Word и Powerpoint}{post}---  
Анониму, что не сдержался:  
1. Ну не хватило человеку слов и забора! – Сочувствую.  
2. Если Вам действительно нужна помощь, то напишите внятно, что у Вас не получается, может кто и захочет помочь.  
 
Для zet3xxx в прилагаемом архиве есть Word-документ “ИЗ_EXCEL_В_WORD.DOC”, в котором различными методами из Excel перенесена таблица с диаграммой: посмотрите, какой из этих методов Вам подходит.  
 
Для тех, у кого есть проблемы с копированием выделенного фрагмента в Word и Powerpoint, прилагается небольшая надстройка ZVI_CopyFromExcel.XLA.  
Позволяет копировать 3-мя способами: как обычно, как рисунок и как объект.  
Устанавливается через меню: Сервис – Надстройки – Обзор.  
Или просто загружается с разрешением макросов.  
Вызов надстройки – с помощью кнопки (W) в правой части панели управления “Стандартная”.  
 
Надстройка протестирована с Office 2003. но вроде должна работать и с другими офисами.  
---  
ZVI{/post}{/quote}
 
мне подходит так то 2 вариант т е вставить как карртинку но  
суть должна быть в следующем:  
выделяем например таблицу и диаграмму в экселе запускаем макрос он создает ворд-документ, и вставляет в него скопированные таблицу и диаграмму.  
создать Ворд документ можно так    
Set objWord = CreateObject("Word.Application")  
в прикрепленном файле пример создания ворд-документов но там только передача данных из ячеек в ворд в форме текста.
 
{quote}{login=zet3xxx}{date=17.03.2008 05:20}{thema=}{post}мне подходит так то 2 вариант т е вставить как карртинку но  
суть должна быть в следующем:  
выделяем например таблицу и диаграмму в экселе запускаем макрос он создает ворд-документ, и вставляет в него скопированные таблицу и диаграмму.  
создать Ворд документ можно так    
Set objWord = CreateObject("Word.Application")  
в прикрепленном файле пример создания ворд-документов но там только передача данных из ячеек в ворд в форме текста.{/post}{/quote}  
---  
Решение - в приложении.  
На 1-й лист добавил условную таблицу и диаграмму, рисунок которых теперь копируется в каждый Word-отчет.  
В Вашем коде добавил 3 небольших фрагмента, они прокомментированы.  
В реальных отчетах таблицы и диаграммы могут быть разными, но это уже дело техники.  
---  
ZVI
 
ZVI на твое примере стало понятно как вставить выделенный диапазон или диграмму, но встал другой вопрос. если в ексел-файле несколько таблиц нпример таб1, таб2...таб5, то хотелось сделать три кнопки    
1-создает документ ворд  
2-добавляет в ворд выделенный объект  
3- сохраняет документ ворд  
помоги такое сделать сам не могу догнать как это сделать:(
 
{quote}{login=zet3xxx}{date=18.03.2008 02:28}{thema=}{post}... стало понятно как вставить выделенный диапазон или диграмму, но ... хотелось бы сделать три кнопки    
1-создает документ ворд  
2-добавляет в ворд выделенный объект  
3- сохраняет документ ворд  
... как это сделать?({/post}{/quote}  
---  
В прилагаемом примере работают кнопки:  
Создать Doc, Добавить (рисунок), Сохранить, Закрыть, Скрыть.  
VBA-код прокомментирован  
---  
ZVI
 
{quote}{login=ZVI}{date=19.03.2008 07:14}{thema=Re: Из Excel в Word}{post}{quote}{login=zet3xxx}{date=18.03.2008 02:28}{thema=}{post}... стало понятно как вставить выделенный диапазон или диграмму, но ... хотелось бы сделать три кнопки    
1-создает документ ворд  
2-добавляет в ворд выделенный объект  
3- сохраняет документ ворд  
... как это сделать?({/post}{/quote}  
---  
В прилагаемом примере работают кнопки:  
Создать Doc, Добавить (рисунок), Сохранить, Закрыть, Скрыть.  
VBA-код прокомментирован  
---  
ZVI{/post}{/quote}  
 
спсб то что нужно!!!  
не могу понять а каким образом работает макрос который скрывает ворд и применение флага, где связка???О_о(кстати как такой создать??)
 
{quote}{login=ZVI}{date=19.03.2008 07:14}{thema=Re: Из Excel в Word}{post}{quote}{login=zet3xxx}{date=18.03.2008 02:28}{thema=}{post}... стало понятно как вставить выделенный диапазон или диграмму, но ... хотелось бы сделать три кнопки    
1-создает документ ворд  
2-добавляет в ворд выделенный объект  
3- сохраняет документ ворд  
... как это сделать?({/post}{/quote}  
---  
В прилагаемом примере работают кнопки:  
Создать Doc, Добавить (рисунок), Сохранить, Закрыть, Скрыть.  
VBA-код прокомментирован  
---  
ZVI{/post}{/quote}
 
че здесь такое творится вставляются левые коменты, а то что хочу ответить исчезает    
вот что хотел ответить ZVI`:  
это то что нужна спсб!!!  
но можешь еще рассказать как взамодействуют макрос  с видимость ворда и флгом???(кстати как его создать такой флаг  
?)
 
{quote}{login=zet3xxx}{date=19.03.2008 02:47}{thema=}{post}че здесь такое творится вставляются левые коменты, а то что хочу ответить исчезает    
вот что хотел ответить ZVI`:  
это то что нужна спсб!!!  
но можешь еще рассказать как взамодействуют макрос  с видимость ворда и флгом???(кстати как его создать такой флаг  
?){/post}{/quote}  
---  
Приложен обновленный вариант, независящий от ссылки на конкретную версию Word (Reference не требуется).    
 
В примере использованы 2 элемента “Флажок” панели управления “Формы” - подробности см. в справке. Флажки связаны с именованными ячейками  J1 (имя “Скрыть”) и K1 (имя “ КопироватьРисунок ”). Флажки сгруппированы с соответствующими автофигурами кнопок, чтобы посмотреть все свойства флажка нужно сначала разгруппировать.  
 
На флажок “Скрыть” назначен макрос DocVisibility(), в макросе есть связь с ячейкой  [Скрыть], которая выглядит так:
 
objWord.Visible = ([Скрыть] = False)
 
Это выражение равносильно следующему:    
 
If Not Range("Скрыть") = False Then objWord.Visible = True Else objWord.Visible = False  
 
Вот собственно и все нюансы, надеюсь, на этом можно закрыть тему.  
---  
ZVI
 
че то не так с этим файлом такое чуство что он постоянно обновляется нет никакой возможности что то сделать с доком
 
{quote}{login=zet3xxx}{date=20.03.2008 01:06}{thema=}{post}че то не так с этим файлом такое чуство что он постоянно обновляется нет никакой возможности что то сделать с доком{/post}{/quote}  
---  
Это могут быть проделки MISSING Reference.  
Убрал вообще отладочную ссылку (Refetence ) на на Microsoft Word Object Library.    
См. приложение  
---  
ZVI
 
Прошу прощения за свое вторжение. Представленный здесь макрос ругается типа: не может найти project or library. НАсколько я понимаю, ему нужно вот это -  microsoft word object library, подцепляю, а в ответ та же фигня. Опять пишет, что не находит библиотеку. С чем это может быть связано?
 
{quote}{login=Роман}{date=18.04.2008 10:45}{thema=}{post}Прошу прощения за свое вторжение. Представленный здесь макрос ругается типа: не может найти project or library. НАсколько я понимаю, ему нужно вот это -  microsoft word object library, подцепляю, а в ответ та же фигня. Опять пишет, что не находит библиотеку. С чем это может быть связано?{/post}{/quote}  
---  
Предпоследний вариант может ругаться, если устьановлен не Word 2003, или не только он один, т.к. в VBA-проекте этого варианта использовался  Reference на Microsoft Word 11.0 object Library, т.е. на Word 2003, и для других версий требуется  поменять ссылку.  
 
Но в последнесв варианте (post_12106.rar) проблем быть не должно, если на компьютере инсталлирован какой-нибудь MS Word и зарегистрирован как "Word.Application".  
 
Убедитесь, что проверяете именно вариант с post_12106.rar, и что в нем Вы ничего не меняли сами.    
Обращаю внимание, что отладочная строчка:    
'Dim objWord As Word.Application    
в коде закомментирована!  
 
Если проблема все же есть, то сообщите, на какую строчку кода ругается отладчик, какие версии Excel и Word установлены.  
---  
ZVI
 
Спасибо, ZVI  
С последним вариантом, действительно никаких проблем, вопрос возник по результатом тестирования предыдущих вариантов
 
Старая тема, но все же актуальна. Все описанное ранее работает, за что большое спасибо. Вопрос в следущем, как вставлять копируемое в нужное нам место WORD с помощью макроса? То есть, с помощью чего можно осуществлять навигащию по документу WORD?
 
{quote}{login=Роман}{date=12.09.2008 02:41}{thema=}{post}Старая тема, но все же актуальна. Все описанное ранее работает, за что большое спасибо. Вопрос в следущем, как вставлять копируемое в нужное нам место WORD с помощью макроса? То есть, с помощью чего можно осуществлять навигащию по документу WORD?{/post}{/quote}  
А зачем вам "осуществлять навигащию по документу WORD"? Для этого существуют связи. Можно создать сотни связанных объектов в документе Word (OLE-клиенте). А потом просто обновлять документ, если в Excele (OLE-сервере)были сделаны изменения...
 
{quote}{login=Роман}{date=12.09.2008 02:41}{thema=}{post}Старая тема, но все же актуальна. Все описанное ранее работает, за что большое спасибо. Вопрос в следущем, как вставлять копируемое в нужное нам место WORD с помощью макроса? То есть, с помощью чего можно осуществлять навигащию по документу WORD?{/post}{/quote}  
---  
Не понятно, что такое "нужное нам место WORD".  
Но предположим, что необходимо в открытом документе “Документ1.doc” установить курсор в конец документа.    
Запись макрорекодера в Word-е выглядит так:  
Selection.EndKey Unit:=wdStory  
 
Если написать эту строку полностью, то она будет выглядеть так:  
Application.Selection.EndKey Unit:=wdStory  
где Application – это объект Word-приложения,  
а константа wdStory=6 (см. VBA Help Word-а)  
 
Макрос в Excel-е, который  сделает то же самое, будет таким:  
' Даем переменной objWord ссылку на объект Word.Application  
Set objWord = GetObject(, "Word.Application")  
' Даем переменной objDoc ссылку на документ  
Set objDoc = objWord.Documents("Документ1.doc")  
' Активируем документ  
objDoc.Activate  
' Теперь делаем то же, что и Word, заменяя Application на objWord  
' и заменяя все константы Word-а на их числовые значения,  
' т.к. Excel не понимаеи именованных констант Word-а  
objWord.Selection.EndKey Unit:=6  ' где 6 = wdStory    
 
 
Ниже приведен полностью VBA-код Excel, который ищет открытое приложение Word, затем ищет в нем отрытый  документ "Документ1.doc" и копирует в конец этого документа выделенный фрагмент из Excel-я  
 
' ZVI:2008-09-13  Из Excel в Word  
' http://www.planetaexcel.ru/forum.php?thread_id=2813&page_forum=2  
Sub CopyToOpenDocFromExcel()  
 Dim objWord, objDoc, RngXL  
 ' Ищем открытое приложение Word  
 Set objWord = GetObject(, "Word.Application")  
 If objWord Is Nothing Then  
   MsgBox ("Не найден Word"), vbExclamation  
   Set objWord = Nothing  
   Exit Sub  
 End If  
 ' Ищем открытый документ Документ1.doc  
 On Error Resume Next  
 Set objDoc = objWord.Documents("Документ2.doc")  
 If Err <> 0 Then  
   MsgBox ("Не найден Документ1.doc"), vbExclamation  
   Set objDoc = Nothing  
   Set objWord = Nothing  
   Exit Sub  
 End If  
 ' Перемещаемся в конец Word-документа  
 objDoc.Activate  
 objWord.Selection.EndKey Unit:=6 ' 6 = wdStory  
 ' Копируем из Excel в Word  
 Selection.Copy  ' это относится к Excel  
 objWord.Selection.Paste ' это уже относится к Word т.к. objWord  
 Application.CutCopyMode = False  
End Sub  
 
Аналогично можно использовать Word-ский код для поиска строки (метод Find).  
 
---  
ZVI
 
---  
Опечатка, которая осталась после отладки отработок ошибок.  
Вместо:  
Set objDoc = objWord.Documents("Документ2.doc")  
Должно быть:  
Set objDoc = objWord.Documents("Документ1.doc")  
---  
ZVI
 
Спасибо, что откликнулись! И за советы спасибо. Касаемо связанных объектов в документе - как показываает практика, не лучший вариант, ворд начинает тупить, особенно если документ большой и в нем много связок, а именно с такими и приходится работать.    
ZVI  как всегда на высоте. Видимо я не совсем корректно сформулировал свою мысль, имелось ввиду, что есть док, наполненный текстом и таблицами, расчет которых осуществлен в екселе. И меня интересует как выставлять курсор в места вставки таблиц. Понимаю, сумбур, но поисковик меня вообще не поймет))
 
{quote}{login=Роман}{date=15.09.2008 10:52}{thema=}{post}Спасибо, что откликнулись! И за советы спасибо. Касаемо связанных объектов в документе - как показываает практика, не лучший вариант, ворд начинает тупить, особенно если документ большой и в нем много связок, а именно с такими и приходится работать.    
ZVI  как всегда на высоте. Видимо я не совсем корректно сформулировал свою мысль, имелось ввиду, что есть док, наполненный текстом и таблицами, расчет которых осуществлен в екселе. И меня интересует как выставлять курсор в места вставки таблиц. Понимаю, сумбур, но поисковик меня вообще не поймет)){/post}{/quote}  
 
============================  
 
Например, я уже давно работаю со связанными документами и никаких проблем в этом не вижу. В некоторых из них не менее ста таблиц, формул из ёкселя и т.п. Поэтому я Word почти не трогаю (в нём уже отчёт готов, меняться должны тока формулы и данные в таблицах. А ещё я меняю некоторые части текста, которые тоже в Excel созданы и в зависимости от формул и условий расчёта должны меняться в Word (эти два файла храню в одной папке).  
Дык я делаю так:  
1) меняю исходные данные в Excel (сервере).    
2) Потом, когда все перечитано отрываю Word, обновляю связи и сохраняю его копию, но уже с разорванными связями.    
 
Да, если пробовать редактировать связанный ворд, он будет тормозить, но ведь в этом и нет особой необходимости. Просто разорвать связи. Все связанные объекты станут в нём картинками…
 
To Новичок VBA (Miнск): А вы знаете, как разорвать связи программно (vba)  
Вопрос уже задавался на этом форуме, но ответов нет (((
 
О том,  как разорвать связи Word-документа, написано в VBA-справке Winword-а в разделе BreakLink Method.  
Пример из справки:  
 
Sub Test()  
 Dim shapeLoop As Shape  
 For Each shapeLoop In ActiveDocument.Shapes  
   With shapeLoop  
     If .Type = msoLinkedOLEObject Then  
       .LinkFormat.Update  
       .LinkFormat.BreakLink  
     End If  
   End With  
 Next shapeLoop  
End Sub
 
{quote}{login=ZVI}{date=17.03.2008 06:47}{thema=Надстройка копирования из Excel в Word и Powerpoint}{post}---  
Анониму, что не сдержался:  
1. Ну не хватило человеку слов и забора! – Сочувствую.  
2. Если Вам действительно нужна помощь, то напишите внятно, что у Вас не получается, может кто и захочет помочь.  
 
Для zet3xxx в прилагаемом архиве есть Word-документ “ИЗ_EXCEL_В_WORD.DOC”, в котором различными методами из Excel перенесена таблица с диаграммой: посмотрите, какой из этих методов Вам подходит.  
 
Для тех, у кого есть проблемы с копированием выделенного фрагмента в Word и Powerpoint, прилагается небольшая надстройка ZVI_CopyFromExcel.XLA.  
Позволяет копировать 3-мя способами: как обычно, как рисунок и как объект.  
Устанавливается через меню: Сервис – Надстройки – Обзор.  
Или просто загружается с разрешением макросов.  
Вызов надстройки – с помощью кнопки (W) в правой части панели управления “Стандартная”.  
 
Надстройка протестирована с Office 2003. но вроде должна работать и с другими офисами.  
---  
ZVI{/post}{/quote}  
 
Добрый день.  
ZVI, где Вы?  
Вот что получается после установки надстройки.  
У-ууууу-у!
 
Доброй пятницы, Ольга! :-)  
Уже забыл про такую надстройку. В ней были установлены прямые ссылки, в том числе, на PowerPoint, что в определеных ситуациях и является причиной подобных ошщибок. Вечером исправлю и выложу вариант поуниверсальнее, хорошо?
Страницы: 1 2 3 След.
Читают тему
Наверх