我在業餘時間支持Excel VBA應用程序。我是製造工藝工程師,而不是專業的開發人員。Excel 2010 VBA刪除圖表
應用程序了的圖表部分已在Excel 2007中沒有問題的工作我公司升級到Excel 2010和同樣的應用程序現在已經用在工作表上的圖表的交互問題。
問題在於條形圖。應用程序在重置時使用下面的代碼從圖表中刪除系列。我這樣做是爲了在導入/處理新數據的過程中,沒有時間向未與最新數據保持一致的用戶顯示圖表。
'select the histogram chart
Sheets(sChartSheet).Select
ActiveSheet.ChartObjects("Chart 15").Activate
Call PBarCaption("Delete Existing Histogram Series")
'remove any existing series
For i = 1 To ActiveChart.SeriesCollection.Count
ActiveChart.SeriesCollection(1).Delete
Next i
然後創建一個新的系列作爲要繪製新的數據從外部數據文件導入:
'add series for histogram
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = "=HistogramData!$B$5:$B$29"
ActiveChart.SeriesCollection(1).XValues = "=HistogramData!$A$5:$A$29"
ActiveChart.SeriesCollection(1).charttype = xlColumnClustered
與2010年的問題是,當偶爾VBA代碼是跑,整個酒吧,圖表是'迷失'(刪除)而不是沒有任何定義的系列的圖表。
「丟失」的圖表似乎當基碼的concsecutive執行經由的VBA另一段代碼自動創建一系列圖表,並將它們複製到PowerPoint的情況下進行的情況發生。
當圖表的順序手動executated,它的工作原理沒有問題。當自動運行時,在生成第二個聊天序列時,圖表將被刪除。
我希望有人熟悉到2010版的變化從Excel 2007中的圖表,將能夠提供幫助。
感謝,
萊恩
您是否能夠確認圖表實際上是否被刪除,或者圖表是否可能變爲隱形?當前表格的ChartObjects集合的長度是否實際減少?當我們將現有的具有圖表操作代碼的工作簿從Excel 2003升級到Excel 2007時,我們發現我們的代碼偶爾會導致圖表從視圖中消失,但它們仍然在後臺。如果他們仍然在那裏,這可能聽起來很奇怪,但是如果你去控制面板並停止然後啓動名爲「後臺打印程序」的服務,它們可能會重新出現。 –
我們發現解決此問題的最佳解決方案是編寫代碼,將所有圖表從頭開始重新創建爲新鮮的2010年圖表,以從Excel 2003版本中刪除任何潛在的「損壞」。 –
Michael,謝謝。我希望下週能有一些時間來回復這個。隨着圖表對象在2010年的宏觀錄製過程中暴露出來,我可以做到這一點,並刪除整個圖表,每次從頭開始重新創建,以便能夠完全控制。我最初想在遷移到2007版本時這樣做,但圖表對象發生了變化,對象模型未在宏記錄中公開,因此有點太過分了。當我到達某處時,我會發布更新。 – NitroLen