2013-07-12 2 views
2

VBA 코드를 Office2003에서 Office2010으로 마이그레이션하는 동안 문제가 있습니다. Powerpoint에 셀 (Excel)의 텍스트를 복사하고 싶습니다. Office2003은 새로운 텍스트 상자를 생성했으며 텍스트의 스타일은 Excel에서와 동일합니다. 이제 Office2010에서 코드가 실패하고 다음 메시지가 나타납니다.VBA Office2010 Shapes.PasteSpecial이 실패합니다.

런타임 오류 -2147188160 (80048240) Shapes.PasteSpecial : 요청이 잘못되었습니다. 클립 보드가 비어 있거나 여기에 붙여 넣을 수없는 데이터가 있습니다.

클립 보드가 비어 있지 않습니다.

Set mySlides = obj_pp.ActivePresentation.Slides 
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteRTF 

는 이미 다른 데이터 형식이 및 붙여 넣기 기능을 시도 :

코드는 다음과 같다. 아무것도 도움이되지 않았습니다. Excel에서 복사 한 텍스트는 Excel에서도 텍스트 형식으로되어 있습니다. 특별한 것은 없습니다. 슬라이드가 빈 칸으로 추가됩니다. 슬라이드를 추가하면 그림이 붙여집니다 (DataType : = ppPasteEnhancedMetafile). 그 후에 텍스트를 붙여 넣어야합니다.

누군가이 코드 작업을 수행하도록 도와 줄 수 있습니까? 미리 감사드립니다. 더 많은 코드가 필요한지 알려주십시오.

편집 : PPT의 바인딩 :

Dim Datei As String 

Pfad_Server = "..." 
Pfad_Verzeichnis = "..." 
Dateiname = "....pptx" 
Datei = Pfad_Server & Pfad_Verzeichnis & "\" & Dateiname 
Set obj_pp = (GetObject(, "Powerpoint.Application")) 
obj_pp.Visible = True 
IsOpen = False 

매크로 난 항상 PPT를 열을 실행하기 전에. 이것은 잘 작동합니다.

추가 슬라이드 및 사진 (잘 작동)로 붙여 넣기 범위 : 제 생각에는

Range(Cells(start_var, 1), Cells(bereich_ende, 13)).Select 
Selection.CopyPicture xlScreen, xlPicture 
... 
Set mySlides = obj_pp.ActivePresentation.Slides 

mySlides.Add Index:=mySlides.Count + 1, Layout:=12 'ppLayoutBlank 
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile 
+0

더 많은 코드가 필요합니다 ... :) 어떤 식으로 파워 포인트에 대한 참조를 설정합니까 (후기, 초기 바인딩)? 너무 오래 있지 않으면 코드 또는 일부를 붙여 넣을 수 있습니다. –

답변

1

당신은 복사합니다 다양한 방법을 변경해야합니다. 당신의 .CopyPicture 라인 대신이 라인을 사용

Selection.Copy 

그것은 붙여 넣기 방식으로 작동합니다 9 = ppPasteRTF

mySlides(mySlides.Count).Shapes.PasteSpecial DataType:=9 

합니다.

+0

대단히 감사합니다! DataType으로 설정해야하는 번호는 어디에서 찾을 수 있습니까? 그들은 사무실 VBA 도움말에 지정되지 않습니다 ... – zuluk

+1

가장 빠른 옵션 : PowerPoint를 시작 >> VBA 편집기 >>로 이동 즉시 쓰기'에? ppPasteRTF' >>를 사용하면 적절한 숫자를 얻을 수 있습니다. 더 긴 옵션 : 시간이 많이 걸릴 수있는 MSDN 참조에서 검색하지만 [이 링크] (http://msdn.microsoft.com/en-us/library/ff744731%28v=office.14%)가 있습니다. 29.aspx) –

+0

OR : PowerPoint, VBA 편집기를 시작하고 F2 키를 눌러 개체 브라우저를 표시 한 다음 ppPasteDataType을 검색하여 모든 상수 및 해당 값의 목록을 가져옵니다. –