簡體   English   中英

嘗試從Excel VBA刪除PowerPoint幻燈片中的所有圖表對象時出錯

[英]Error when trying to delete all chart objects in a PowerPoint Slide from Excel VBA

我有一個充當數據庫的Excel文件。 在對Excel文件中的數據進行排序和修改之后,我將更新后的數據復制到PowerPoint幻燈片中。 從更新的工作表中復制所有圖表對象之前,我想從PowerPoint幻燈片中刪除舊圖表。

我使用了下面的代碼,但是,當嘗試刪除幻燈片中的最后一個圖表時,我收到一條錯誤消息。 錯誤消息是“ Shapes.Item:整數超出范圍。25不是索引的1到24的有效范圍 ”。

Dim SlideNum, i                     As Integer

SlideNum = ActiveSheet.Cells(5, 2)

For i = 1 To PPT.ActivePresentation.Slides(SlideNum).Shapes.Count
    ' if current slide object is a chart, delete it
    If PPT.ActivePresentation.Slides(SlideNum).Shapes.Item(i).HasChart Then
        PPT.ActivePresentation.Slides(SlideNum).Shapes.Item(i).Delete
    End If
Next i

每當您要遍歷VBA中的一組對象以刪除一個或多個對象時,都需要使用步驟-1進行倒數,因此您的循環應像這樣開始:

For i = PPT.ActivePresentation.Slides(SlideNum).Shapes.Count to 1 Step -1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM