我在业余时间支持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