Копирование графика именованного диапазона в powerpoint

Я кодирую презентацию PowerPoint с поддержкой макросов, проблема заключается в том, что я пытаюсь скопировать именованный диапазон (который является графиком) из листа Excel в презентацию Power Point.

  Dim xlApp As Object
  Dim xlWorkBook As Object
  Dim path As String
  Dim filename As String

  Set xlApp = CreateObject("Excel.Application")
  Set PPApp = GetObject(, "Powerpoint.Application")
  Set PPPres = PPApp.ActivePresentation

  path = "path"
  filename = "name.xlsx"

 Set xlWorkBook = xlApp.Workbooks.Open(path & filename)
 Set positionsheet = xlWorkBook.Sheets("Graphs")


'problem is in the below line
positionsheet.Range("Graph1").CopyPicture Appearance:=xlScreen, Format:=xlPicture 
Set osh = PPPres.Slides(1).Shapes.PasteSpecial(ppPasteEnhancedMetafile)(1)

'adjust size here...

With xlWorkBook
 .Save
 .Close
End With

Set xlApp = Nothing
Set xlWorkBook = Nothing

Ошибка, которую я получаю,

ошибка выполнения 1004, ошибка, определяемая объектом

Я пытался:

  positionsheet.Range("Graph1").Select

перед проблемной линией... безуспешно.


person Community    schedule 19.01.2018    source источник
comment
Можем ли мы копировать только в таких диапазонах, как .Range(A1:P20)? Действительно? должен быть способ?   -  person    schedule 19.01.2018


Ответы (1)


Замените диапазон фигурами, например:

positionsheet.Shapes("Graph1")...

Вы должны убедиться, что у вас правильное имя. Это не то же самое, что диапазон, но он будет отображаться в том же поле, что и имена диапазонов.

person Sam    schedule 19.01.2018
comment
Я копирую довольно много графиков, как вы думаете, нужно ли очищать буфер обмена Power Points? - person ; 19.01.2018
comment
Только если заметите проблему. - person Sam; 19.01.2018