我有一個在Excel 2003中編寫的VBA宏,它在Excel 2003和2007中工作得非常好。但是,它在Excel 2010中摔倒了,我無法說出原因。無法刪除在Excel 2010中使用VBA的圖表系列
宏在用戶添加或刪除數據後更新圖表中的系列。第一步(數據驗證之後)是刪除圖表中第一個系列以外的所有系列。
'clear all chart series except for series 1
Do While theChart.SeriesCollection.Count > 1
theChart.SeriesCollection(2).Delete
Loop
暫停執行在循環的第一個迭代,錯誤對話框「方法‘刪除’對象‘系列’的失敗。」
我想也許對象模型在Excel 2010中發生了變化,所以我用宏錄製器來記錄刪除了一系列的行動:
ActiveSheet.ChartObjects("Plant Feed").Activate
ActiveChart.SeriesCollection(3).Select
Selection.Delete
運行錄製的宏(與3系列重新設置明顯)停止在第二行,用「方法」選擇「對象」系列「失敗。」
我再補充一個對象變量和一些MSGBOX線,試圖調試問題:
Dim theSeries As Series
ActiveSheet.ChartObjects("Plant Feed").Activate
MsgBox (ActiveChart.SeriesCollection(3).Name)
Set theSeries = ActiveChart.SeriesCollection(3)
MsgBox (theSeries.Name)
theSeries.Delete
對象變量正確設置和消息框給出正確的輸出,但它仍然落在了上theSeries。刪除。
最後,我重複了上述所有使用Excel 2010中創建的全新圖表,以防萬一它是2003年的遺留問題,但我得到了同樣的錯誤。
我正在撕裂我的頭髮。我在網上搜索解決方案無濟於事,這是什麼導致我到這個堆棧溢出網站。我會很感激任何人都可以提供的幫助。
問候,
達倫
+1用於詳細說明迄今爲止採取的步驟。問題:紙張受到保護的可能性有多大? –
謝謝你Rachel。我希望是這樣,儘管我會覺得有點傻。自從我發佈以來,我已經確定了一件事,這讓我認爲這是2003年的某種遺產。如果我在新工作簿中創建新圖表,我不會遇到問題。但是現有工作簿中的新圖表不起作用,即使我先刪除所有其他圖表和VBA模塊。我想我將不得不從頭開始重新創建整個工作簿。 –
Darren
Rachel的+1未能正常工作,但您仍然可以享受它。順便說一下,您可以嘗試在引起錯誤的行上設置一個斷點並查看'theChart.SeriesCollection(2)'對象並檢查它是什麼 – JMax