我在Excel中有一个VBA模块,可以删除Powerpoint幻灯片。代码如下:
Function MyRange(ByVal StartIndex As Long, ByVal StopIndex As Long) As Variant
Dim A() As Long
Dim I As Long
ReDim A(StartIndex To StopIndex)
For I = StartIndex To StopIndex: A(I) = I: Next
MyRange = A End Function
Sub RemoveUnwantedSlides()
ActivePresentation.Slides.Range(MyRange(94, 101)).Delete
ActivePresentation.Slides.Range(MyRange(85, 92)).Delete
ActivePresentation.Slides.Range(MyRange(76, 83)).Delete
End Sub
但是,我想要删除幻灯片编号的代码,具体取决于Excel中特定单元格的当前值。假设"1"在单元格A1中,则只应删除幻灯片94-101。如果"2"在单元格A1中,则只应删除幻灯片85-92。如果单元格A1中有"3",则只应删除幻灯片76-83。
如何在IF语句中插入当前宏?谢谢
我已经适应了以下内容,但它不起作用:
Sub RemoveUnwantedSlides()
Dim A() As Long
Dim I As Long
ReDim A(StartIndex To StopIndex)
For I = StartIndex To StopIndex: A(I) = I: Next
MyRange = A
'The file name and path of the file to update
sourceFileName = "C:UsersChildren.pptm"
Set pptApp = New PowerPoint.Application
Set pptPresentation = pptApp.Presentations.Open(sourceFileName)
pptApp.Activate
Dim ppSlidesArr As Variant
Select Case Range("A1").Value
Case 1
ppSlidesArr = MyRange(64, 65)
Case 2
ppSlidesArr = MyRange(85, 92)
Case 3
ppSlidesArr = MyRange(76, 83)
End Select
ActivePresentation。幻灯片。范围(ppSlidesArr)。删除
结束子
它给了我一个"运行时错误429:ActiveX组件无法创建对象"此外,如果我想删除特定的幻灯片,而不是一个范围,我该怎么办?谢谢
试试下面的代码,你可以使用Select Case
使代码更适合未来的场景:
Sub RemoveUnwantedSlides()
Dim ppSlidesArr As Variant
Select Case Range("A1").Value
Case 1
ppSlidesArr = MyRange(94, 101)
Case 2
ppSlidesArr = MyRange(85, 92)
Case 3
ppSlidesArr = MyRange(76, 83)
End Select
ActivePresentation.Slides.Range(ppSlidesArr).Delete
End Sub