Цикл VBA внутри цикла, где второй цикл всегда начинается с 1 - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующий код, который просматривает все слайды в презентации PPT.Если слайды попадают под один из разделов и не являются скрытыми, они сохранятся с соответствующим именем.Я пытаюсь получить номер после сохраненного имени (то есть TEST #), чтобы всегда начинать с 1 для каждого раздела.Таким образом, если в секции IDSS пять слайдов, которые начинаются со слайда 5, они будут сохранены: IDSS1, IDSS2 и т. Д. То, что у меня есть ниже, просто сохраняет его с текущим номером слайда.Спасибо за любую помощь, которую вы можете предоставить!

Изменить, чтобы обеспечить большую ясность

У меня есть много различных слайдов в этой презентации PPT, все из которыхрасположены в определенном именованном разделе.Для этого примера предположим, что всего 6 слайдов.Слайды 1-3 находятся в разделе «ТЕСТ», а слайд 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 голосов
/ 06 февраля 2019

Ваш вопрос не совсем понятен, но я думаю, что это то, что вам нужно, попробуйте и дайте мне знать

    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...