2017-02-17 43 views
0

Я использую этот код для экспорта диаграмм Excel в PowerPointVBA (и VB6) вопрос в склеивании из Excel в PowerPoint

Sub ChartsToPresentation() 

Dim PPApp As PowerPoint.Application 
Dim PPPres As PowerPoint.Presentation 
Dim PPSlide As PowerPoint.Slide 
Dim PresentationFileName As Variant 
Dim SlideCount As Long 
Dim iCht As Integer 

Application.CutCopyMode = False 
Set PPApp = GetObject(, "Powerpoint.Application.16") 
Set PPSlide = PPApp.ActiveWindow.View.Slide 
nv = PPApp.ActiveWindow.Selection.SlideRange.SlideIndex 

    ActiveChart.ChartArea.Select 
    Selection.Copy 

ggg: Set shp = PPApp.ActivePresentation.Slides(nv).Shapes.PasteSpecial(DataType:=0) 
If Err Then GoTo ggg 
Application.CutCopyMode = False 
End Sub 

Как я вызов подлодки для многих различных диаграмм в цикле, я get Часто Ошибка «Буфер обмена пуст или содержит данные, которые могут не вставляться». Он выглядит как проблема с задержкой между копией и пастой.

Я использую Win10 офис 2016 64b

Есть обходной путь?

Я пытался сделать это с VB6, но выглядит та же самая проблема

ответ

0

Использовать обычные ppPasteEnhancedMetafile = 2 или ppPasteShape = 11 или ppPasteJPG = 5
в ТипДанных для диаграмм!

Очищенный и улучшили код:

Sub ChartsToPresentation() 
Dim PPApp As PowerPoint.Application 
Dim PPSlide As PowerPoint.Slide 

Application.CutCopyMode = False 
Set PPApp = GetObject(, "Powerpoint.Application") 
Set PPSlide = PPApp.ActiveWindow.View.Slide 

ActiveChart.ChartArea.Copy 
DoEvents 
PPSlide.Shapes.PasteSpecial DataType:=ppPasteShape 
Application.CutCopyMode = False 
End Sub 

Или медиатор:

members of PpPasteDataType

+0

ppPasteEnhancedMetafile не формат мне нужно – user3387046

+0

@ user3387046: Я редактировал включить другие возможности. – R3uK

+0

Все еще очень нестабильно. Может быть вызвано 64B Office? – user3387046