Какие еще методы я могу использовать INSTEAD из «ActivePresentation» в PowerPoint VBA - PullRequest
0 голосов
/ 11 апреля 2019

В настоящее время я работаю над PowerPoint VBA и пишу код, чтобы иметь возможность скопировать первый слайд и снова вставить его в ту же презентацию.Тем не менее, я получаю сообщение об ошибке «Буфер обмена пуст или содержит данные, которые не могут быть размещены здесь», и на странице Microsoft проблема заключается в использовании «ActivePresentation»

Я ищу другой способ ссылкина слайд, который я открыл без использования ActivePresentation.Любая помощь?Идеи?

Ниже приведена строка кода, которую я использую ActivePresentation:

ActivePresentation.Slides(1).Copy
ActivePresentation.Slides.Paste(ActivePresentation.Slides.Count=1)

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Не копировать, дублировать

Dim NewSlide as Slide
Set newSlide = ActivePresentation.Slides(1).Duplicate
NewSlide.MoveTo toPos:=4  'move it to become the fourth slide
1 голос
/ 12 апреля 2019

Небольшой вариант решения Harassed Dad.PPT лает на строку Set, потому что Duplicate возвращает объект SlideRange, а не объект Slide..Duplicate (1) возвращает первый слайд в диапазоне как объект Slide.Это дублирует слайд 2 и перемещает его на первую позицию в презентации.

Sub CopySlide()
    Dim oSl As Slide
    With ActivePresentation
        Set oSl = .Slides(2).Duplicate(1)
        oSl.MoveTo (1)
    End With
End Sub
...