удалить изображения из слайдов в PowerPoint из Excel - PullRequest
0 голосов
/ 30 марта 2019

Я попытался выяснить, почему кодирование не работает, но следующий код должен был открыть из Excel PowerPoint и очистить существующие слайды, чтобы заменить его новым изображением - однако я получаю следующее:

ошибка 91: переменная объекта или переменная блока не установлены.

Я попробовал несколько других кодов из стека, но не могу заставить его работать .. какая-нибудь помощь, пожалуйста? Колода содержит слайды 2 и 9 для очистки.

Sub ppt_export()
Dim DestinationPPT As String
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim objApp As Object, objSlide As Object, ObjShp As Object, objTable As` Object

DestinationPPT = "C:\Users\\Desktop\Summary.pptx"
Set ppApp = CreateObject("PowerPoint.Application")
Set ppPres = ppApp.Presentations.Open(DestinationPPT)
'delete the shapes from the renew the template

 For i = ppSlide.Shapes.Count To 1 Step -1
Set ppShape = ppSlide.Shapes(p)
If ppShape.Type = msoPicture Then ppShape.Delete
Next
End Sub

Я хотел бы знать, как исправить код, чтобы продолжить кодирование с копированием листов Excel в виде изображений на соответствующий слайд.

1 Ответ

0 голосов
/ 30 марта 2019

Сначала и самое главное , добавьте Option Explicit в начало модуля кода, и он пометит различные необъявленные переменные, которые у вас есть: p, i, ppSlide иppShape.

Тогда код может выглядеть примерно так:

Option Explicit

Sub ExportToPPT()
    Dim ppApp As PowerPoint.Application
    Set ppApp = New PowerPoint.Application

    Dim ppFileName As String
    ppFileName = "C:\Users\\Desktop\Summary.pptx"

    Dim ppPres As PowerPoint.Presentation
    Set ppPres = ppApp.Presentations.Open(Filename:=ppFileName)

    Dim ppSlide As PowerPoint.Slide

    Dim i As Integer
    For i = 2 To 9
        Set ppSlide = ppPres.Slides(i)

        Dim j As Integer
        For j = ppSlide.Shapes.Count To 1 Step -1
            If ppSlide.Shapes(j).Type = msoPicture Then
                ppSlide.Shapes(j).Delete
            End If
        Next j
    Next i
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...