Автор Тема: Excel Word Макросы: Вставить из буфера в Word  (Прочитано 3527 раз)

jfd

  • Гость
Добрый день, никак не удается вставить из буфера картинку в ячейку word-таблицы. В буфер картинка попала при выполнении макроса в Excel.
Использование макроредактора дает такой метод вставки содержимого буфера - PasteAndFormat (wdPasteDefault), но почему-то не работает.
Подскажите в чем дело может быть?


Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #1 : 05 Апрель 2016, 11:13 »
А если без макроса вставлять, например, сочетанием клавиш Ctrl + V, то вставляется картинка?

jfd

  • Гость
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #2 : 05 Апрель 2016, 11:14 »
Да вставляется картинка.
Причем выделить нужную word-ячейку получается, а вставить в нее нет:

Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Open(wb.Path & xxxx.docx")

WD.Tables(1).Cell(1, 1).Select


Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #3 : 05 Апрель 2016, 11:30 »
Нужно вставить из эксель в ворд?

jfd

  • Гость
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #4 : 05 Апрель 2016, 11:31 »
Если это принципиальный момент то да, но картинка в буфере, но она там может оказаться как результат того же PrintScreen'а.

Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #5 : 05 Апрель 2016, 11:33 »
Напишите строку кода, которую вы используете, чтобы вставить в ворд.

Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #6 : 05 Апрель 2016, 11:39 »
Я скопировал в экселе рисунок вручную (Ctrl + C). Затем я перешёл в ворд и там вставил рисунок таким кодом:
Sub Макрос1()
    Selection.PasteAndFormat (wdFormatOriginalFormatting)
End Sub

Можете проделать такие же действия? Получилось у вас вставить?

jfd

  • Гость
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #7 : 05 Апрель 2016, 11:43 »
Да, получилось вставить, как вы описали.

Я вот так пишу макрос по вставке:
WD.Tables(1).Cell(1, 1).Select

И варианты:
WD.Selection.PasteAndFormat (wdPasteDefault)
WD.ActiveDocument.Selection.PasteAndFormat (wdPasteDefault)
WD.ThisDocument.Selection.PasteAndFormat (wdPasteDefault)
WA.ActiveDocument.Selection.PasteAndFormat (wdPasteDefault)
WA.ThisDocument.Selection.PasteAndFormat (wdPasteDefault)




Оффлайн Администратор

  • Administrator
  • Сообщений: 1939
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #8 : 05 Апрель 2016, 11:54 »
Вариант без выделения. Код написан для использования в самом ворде, а не в экселе. Если вам нужно именно с выделением, то тогда нужно будет подумать, что сделать, но пока я считаю, что выделение нет смысла использовать.
Sub Макрос2()
    Dim doc As Document
    Set doc = ActiveDocument
    doc.Tables(1).Cell(1, 1).Range.PasteAndFormat wdPasteDefault
End Sub

Что касается вашего кода. WD у вас это объект "Word.Document". У объекта "Document" нет членов "Selection", "ActiveDocument" и "ThisDocument" поэтому ваши коды неправильные.

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


jfd

  • Гость
Re: Excel Word Макросы: Вставить из буфера в Word
« Ответ #9 : 05 Апрель 2016, 12:03 »
Вот WD.Tables(1).Cell(1, 1).Range.PasteAndFormat wdPasteDefault это сработало.
Спасибо!