2009-11-18 82 views
2

我試圖創建此腳本,將創建10張空幻燈片,但它並不適用於某些原因:爲什麼這個幻燈片在VBA PowerPoint中創建循環不起作用?

Sub CreatingSlides() 
    Dim oPresentation As Presentation 
    Set oPresentation = ActivePresentation 
    Dim oSlide As Slide 
    Dim oSlides As SlideRange 
    Dim oShape As Shape 
    Dim slideNumber As Integer 
    Dim myindex As Integer 

    Set myindex = 1 
    ActivePresentation.Slides.add(Index:=myindex, Layout:=ppLayoutBlank).Select 
    For myindex = 1 To 10 
     myindex = myindex + 1 
     ActivePresentation.Slides.add(Index:=myindex, Layout:=ppLayoutBlank).Select 
    Next myindex 
End Sub 

我做了什麼錯在這裏?也許我的循環在這裏丟失了什麼?

回答

5

第一:

Set myindex = 1 

應該是:

myindex = 1 

設置爲對象引用。咱們是值,通常隱含的,但你也可以使用:

Let myindex = 1 

具有相同的影響。

二,鬆線

myindex = myindex + 1 

這是什麼FOR/NEXT爲你做的。你可能會有不同的行爲期望,所以試試這個,我們可以從那裏開始。

+0

哇! Swanny,它的作品!謝謝! 也感謝您解釋「Let」和「FOr/Next」的相關內容。 一個小問題:爲什麼它會創建11個幻燈片而不是10個?是因爲在「For」行之前插入了「ActivePresentation.Slides.add(Index:= myindex,Layout:= ppLayoutBlank)。選擇」? – brilliant 2009-11-18 05:56:41

+0

您從Forides循環前的Slides.Add()和for循環內的10中獲得一張幻燈片。如果您的意圖是添加10張幻燈片,請在For循環之前鬆開兩行。 For循環將有10次迭代,myindex的值爲1到10。 – Swanny 2009-11-18 22:53:07