Я использую макрос в PowerPoint 2003 SP3, чтобы найти указанную диаграмму в книге Excel, скопировать ее, а затем вставить ее в текущий слайд в виде расширенного метафайла со, в конечном счете, следующей строкой кода:
<code>Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
Как часто это работает, я также получаю следующую ошибку:
Run-time error '-2147188160 (80048240)':
View (unknown member) : Invalid request. The specified data type is unavailable.
Если я заканчиваю макрос и пытаюсь вручную вставитьСпециально, как расширенный метафайл, у меня нет проблем, поэтому объект буфера обмена или тип pastespecial недопустимы.
Кто-нибудь еще сталкивался с этим?У вас есть решение или обходной путь?Поисковая ошибка в результатах поиска Google не найдена.
Обновление
Общий код выглядит следующим образом:
Set presPPTCurrent = ActivePresentation
Set objXLApp = GetObject(, "Excel.Application")
''#Find the target chart and copy it to the clipboard
With objXLApp
''#This part works - if I go to Excel, I can see that the chart is copied
End With
''#Now paste in the chart as an Enhanced Metafile
presPPTCurrent.Application.Activate
Application.ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile
Обратите внимание, что это находится в Sub, к которому передается Shape (переданный Shape используется как ссылка для поиска диаграммы в Excel).Я понял, что это только ошибки, когда я пытаюсь повторно использовать этот саб в нескольких формах, переданных из цикла For Next в другом Sub.
Однако, если я передам один Shape этому Sub с помощью другого Sub изатем повторно запустите Sub, который проходит несколько Shapes, он работает нормально.
Решение
По упоминанию Отаку, макрос терял фокус на СлайдеPane.Сказать, что он выбрал слайд-панель, решило проблему.
<code>Application.ActiveWindow.Panes(2).Activate