我想从我的幻灯片库(源文件)中获取更新的幻灯片,并使用宏在打开的演示文稿中找到相同的幻灯片并将其替换为更新的幻灯片。但是我需要通过SlideID而不是页码来定义幻灯片。因此,操作是:在打开的演示文稿中找到幻灯片(按SlideID),将其删除,然后在源文件的非常相同的位置插入更新的幻灯片(具有相同的SlideID)。
我尝试了下面的代码,但它删除了打开的演示文稿中的不良幻灯片,然后在末尾而不是在相同位置粘贴了良好的幻灯片。感谢您解决此问题的帮助。
Sub ReplaceOneSlide()
ActivePresentation.Slides.FindBySlideID(1854).Delete
Dim sourcePresentation As Presentation
On Error Resume Next
Set sourcePresentation = Application.Presentations("X:\Marketing Presentations (Final) \Slide Library\Slide Library.pptm") 'change the name accordingly
If sourcePresentation Is Nothing Then
MsgBox "Source presentation not found!", vbExclamation
Exit Sub
End If
On Error GoTo 0
Dim vSlideIDs As Variant
vSlideIDs = Array(1854) 'change the slide IDs accordingly
Dim i As Long
For i = LBound(vSlideIDs) To UBound(vSlideIDs)
sourcePresentation.Slides.FindBySlideID(vSlideIDs(i)).Copy
ActivePresentation.Slides.Paste
Next i
End Sub
答案 0 :(得分:1)
关于“如何保存和关闭活动演示文稿以及如何在除源文件以外的任何其他打开的演示文稿中自动运行宏”,
Dim oPres as Presentation
Dim sMyName as String
sMyName = "BlahBlah" ' fill in the name of the pres with macros here
For Each oPres in ActivePresentations
If Not Ucase(oPres.Name) = Ucase(sMyName) Then
' do whatever's needed to oPres here
oPres.Save
oPres.Close
End if
Next