VBA循环,其中第二个循环始终从1

时间:2019-02-05 23:51:14

标签: vba powerpoint

我下面有以下代码循环遍历PPT演示文稿中的所有幻灯片。如果幻灯片属于其中一个部分且未隐藏,则将使用适当的名称保存它们。我正在尝试获取已保存名称(即TEST#)之后的数字,以便每个部分始终从1开始。因此,如果IDSS部分中有五张幻灯片(从幻灯片5开始),则将它们保存起来:IDSS1,IDSS2等。下面我将其保存的方式只是将其与当前幻灯片编号一起保存。感谢您提供的任何帮助!

编辑以提供更大的清晰度

此PPT演示中有许多不同的幻灯片,所有幻灯片都位于特定的命名部分中。对于此示例,假设总共有6张幻灯片。幻灯片1-3位于名为“ TEST”的部分,幻灯片3被隐藏。幻灯片4-6在“ IDSS”部分中,没有一个被隐藏。我需要代码来遍历所有幻灯片,找出哪些在“ TEST”部分中,并将它们命名为“ TEST1”和“ TEST2”(由于隐藏了第三张幻灯片,所以将其跳过)。然后将其移至“ IDSS”部分,并将幻灯片另存为“ IDSS1”,“ IDSS2”和“ IDSS3”。这是我无法以每个部分的1重新启动的名称后的数字。希望这样做更清楚。

Dim sld As Slide

TestSection = SectionIndexOf("Test") 'Name of a section is in the quotes.

IDSSslides = SectionIndexOf("IDSS")

i = 1
For Each sld In ActivePresentation.Slides

    If sld.sectionIndex = TestSection And ActivePresentation.Slides(i).SlideShowTransition.Hidden = msoFalse Then
        ActivePresentation.Slides(i).Export filenamepng & "TEST" & i & ".png", "PNG"
    ElseIf sld.sectionIndex = IDSSslides And ActivePresentation.Slides(i).SlideShowTransition.Hidden = msoFalse Then
        ActivePresentation.Slides(i).Export filenamepng & "IDSS" & i & ".png", "PNG"
    End If
i = i + 1
Next

1 个答案:

答案 0 :(得分:1)

您的问题并不十分清楚,但是我认为这就是您所需要的,尝试一下并让我知道

    Dim sld As Slide

TestSection = SectionIndexOf("Test") 'Name of a section is in the quotes.

IDSSslides = SectionIndexOf("IDSS")

dim i as integer 'Counter for TEST 
dim j as integer'Counter for IDSS 

i = 1 
j=1

For Each sld In ActivePresentation.Slides

    If sld.sectionIndex = TestSection And sld.SlideShowTransition.Hidden = msoFalse Then
        sld.Export filenamepng & "TEST" & i & ".png", "PNG"
        i=i+1
    ElseIf sld.sectionIndex = IDSSslides And sld.SlideShowTransition.Hidden = msoFalse Then
        sld.Export filenamepng & "IDSS" & j & ".png", "PNG"
        j=j+1
    End If
Next