2015-10-12 2 views
1

Я хочу открыть существующий шаблон PowerPoint и выбрать слайд 3 и скопировать таблицу из моей таблицы в слайд PowerPoint.Открыть PowerPoint и скопировать из Excel в определенный слайд

Пожалуйста, кто-нибудь покажет мне, как это сделать?

Sub Open_PowerPoint_Presentation() 
'Opens a PowerPoint Document from Excel 

    Dim objPPT As Object 
    Dim PPSlide As Object 

    Set objPPT = CreateObject("PowerPoint.Application") 
    Set PPSlide = objPPT.Slides(5) 

    objPPT.Visible = True 

    'Change the directory path and file name to the location 
    'of your document 

    objPPT.Presentations.Open "\\MI-FILESERVE1\Shared Folders\Shared_Business_Dev\assets\Tender Time Allocation Deck.pptx" 

    PPSlide.Select 




    End Sub 

ответ

1

Будьте ОСТОРОЖНЫ: Вы не можете вставить в форме вашего слайда, если коллекция пуста

И.Е. : вам понадобится слайд с хотя бы заголовком или формой (квадрат, треугольник, ...), чтобы можно было вставить то, что вы скопировали в свой буфер обмена.

Вот основы, вы должны исправить строки первенствовать копировать то, что вы хотите:

Sub Open_PowerPoint_Presentation() 

Dim objPPT As Object, _ 
    PPTPrez As PowerPoint.Presentation, _ 
    pSlide As PowerPoint.Slide 

Set objPPT = CreateObject("PowerPoint.Application") 
objPPT.Visible = True 

Set PPTPrez = objPPT.Presentations.Open("\\MI-FILESERVE1\Shared Folders\Shared_Business_Dev\assets\Tender Time Allocation Deck.pptx") 
Set pSlide = PPTPrez.Slides(5) 

If pSlide.Shapes.Count <> 0 Then 
    'Table 
    ActiveWorkbook.Sheets("Sheet1").Range("Named Range").Copy 
    pSlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile 
    'OR 
    ActiveWorkbook.Sheets("Sheet1").Range("Named Range").CopyPicture 
    pSlide.Shapes.Paste 

    'Charts 
    ActiveWorkbook.Sheets("Graph1").ActiveChart.ChartArea.Copy 
    pSlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile 
    'OR 
    ActiveWorkbook.Sheets("Graph1").ActiveChart.ChartArea.CopyPicture 
    pSlide.Shapes.Paste 
Else 
    MsgBox "There is no shape in this Slide (" & pSlide.SlideIndex & ")." & vbCrLf & "Please use a slide with at least one shape, not a blank slide", vbCritical + vbOKOnly 
End If 

End Sub 
+0

спасибо Я попробовал ваш код, но я получаю следующее сообщение об ошибке: формы (неизвестный элемент) недействителен запрос. Буфер обмена Пусто или содержит данные, которые могут не вставляться здесь –

+0

Вы переименовали «Именованный диапазон» ??? и "Sheet1" ??? – R3uK

+0

Да, это было не так. Спасибо –

Смежные вопросы