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