2017-02-17 4 views
0

내가 PowerPoint로 Excel 차트를 내보내기 위해이 코드를 사용하고 있습니다에 붙여 넣기에 문제VBA (및 VB6) 엑셀에서 파워 포인트

내가 루프에서 여러 가지 차트 하위를 호출하는거야으로
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 

, I 종종 오류 "클립 보드가 비어 있거나 붙여 넣을 수없는 데이터가 포함되어 있습니다.". 복사와 붙여 넣기 사이의 지연 문제로 보입니다.

저는 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

여전히 매우 불안정합니다. Office의 64B가 원인 일 수 있습니까? – user3387046