2011-10-24 58 views
2

我試圖從Excel圖中刪除所有空系列。從圖中刪除空系列(使用VBA)

Dim isEmptySeries As Boolean 
    For Series = 1 To .SeriesCollection.count 
     .SeriesCollection(Series).ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False 
     isEmptySeries = True 

     For i = 1 To .SeriesCollection(Series).points.count 
      If .SeriesCollection(Series).points(i).DataLabel.Text = 0 Then 
       .SeriesCollection(Series).points(i).HasDataLabel = False 
      Else 
       isEmptySeries = False 
       .SeriesCollection(Series).points(i).DataLabel.Font.Size = 17 
      End If 
     Next i 

     If isEmptySeries Then 
       .SeriesCollection(Series).Delete 
     End If 
    Next Datenreihe 

腳本失敗ApplyDatalabels行(「方法SeriesCollection of Object Chart失敗」)。 我相信,當系列中的一個被刪除時,Excel會改變系列索引?是這樣嗎?這是我對錯誤的唯一解釋。

我還會如何循環瀏覽系列並刪除那些空的?

回答

5

在這些類型的情況下,試圖通過

+0

+1很好地完成循環以相反的順序

For i = .SeriesCollection(Series).points.count To 1 Step -1 

這樣的.Delete不影響該項目尚待循環。 – brettdj