我試圖使用VBA從Excel 2003中的圖表中刪除空系列。我已經看到其他人在過去曾經遇到過這個問題,並且我嘗試了在他們的帖子中提到的所有方法,但一直無法找到任何可以一致工作的方法。如何使用VBA從Excel圖表中刪除系列
該圖表中有14個系列,其中3個或9個之間的任何位置都可以爲空。空的總是系列4之間 - 我試過的代碼有一些變化,但是這主要是它:
Sheets("chart-1").Select
ActiveChart.PlotArea.Select
For i = 12 To 4 Step -1
Dim theSeries As Series
MsgBox (ActiveChart.SeriesCollection(i).Name)
Set theSeries = ActiveChart.SeriesCollection(i)
MsgBox (theSeries.Name)
theSeries.Delete
Next
我可以爲一個圖表成功運行一次,但所有後續週期失敗,出現Unable to get the Name property of the Series class
錯誤。它在調用.Name時失敗。
我能夠通過直接插入整數來獲得它的工作,但它只會爲除1以外的所有整數運行一次。它運行多次爲Series(1)
。例如,如果我只是簡單地調用:ActiveChart.SeriesCollection(1).Delete,那麼系列將被刪除,但是如果我用另一個整數(4,9,12)運行它,它將不會運行。它會重新工作1,但只有1.它也將工作一次與其他整數(如4),但所有後續調用將失敗,即使我將整數更改爲1或保持爲4,或將其更改爲其他數。
這種行爲真的很奇怪。
任何想法將不勝感激。我不能簡單地打電話ActiveChart.SeriesCollection(1).Delete
,因爲前3個系列總是非空的。
謝謝。
** **更新
我只是跑測試手動執行以下操作:
Sheets("ch-v2-12mth").Select
ActiveChart.PlotArea.Select
MsgBox (ActiveChart.SeriesCollection(1).Name)
我通過循環的SeriesCollection試圖數字1 - 16(只有14個圖表中系列)來查看結果。 13工作得很好 4 - 13誤用Unable to get the Name property of the Series class
14工作得很好 15 - 16誤用Method 'SeriesCollection' of object '_Chart' failed
< - 並不奇怪,因爲在圖中序列的數量。
這種行爲讓我覺得Excel有一個bug。任何其他想法?
這是你正在嘗試? http://stackoverflow.com/questions/7875326/deleting-empty-series-out-of-graph-with-vba – 2012-08-09 12:31:38
@Siddharth基本上是這就是我正在嘗試,而實際上不需要數據標籤。我已經使用我已經完成的一些更多測試的結果更新了最初的請求。結果很奇怪。感謝您的幫助,但我仍然得到相同的行爲和錯誤。任何其他想法? – 2012-08-10 03:07:22
你可以加載一個示例excel文件,以便我可以玩弄它嗎?這樣我就不必創建一個示例文件。您可以在wikisend.com上傳文件,然後在此分享鏈接。 – 2012-08-10 03:28:21