繁体   English   中英

Excel 2010 VBA删除图表

[英]Excel 2010 VBA Deletes Chart

我在业余时间支持Excel 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代码时,整个条形图“丢失”(删除)而不是没有任何已定义系列的图表。

当通过VBA代码的另一部分执行基本代码的连续执行时,“丢失”图表似乎发生,该部分自动创建一系列图表并将它们复制到PowerPoint。

当手动执行图表序列时,它可以正常工作。 当自动运行时,在生成第二个聊天序列时,图表将被删除。

我希望有人熟悉从Excel 2007到2010版本的图表更改,并且能够提供帮助。

谢谢,

莱恩

它可能有助于修改代码,因此您不会激活/选择,然后根据“活动”对象不改变:如果某些其他代码在您不期望它时激活某些其他对象,则可能会中断...

Dim cht As Chart

Set cht = ActiveWorkbook.Sheets(sChartSheet).ChartObjects("Chart 15").Chart
Do While cht.SeriesCollection.Count > 0
    cht.SeriesCollection(1).Delete
Loop

With cht.SeriesCollection
    .NewSeries
    With .Item(1)
        .Values = "=HistogramData!$B$5:$B$29"
        .XValues = "=HistogramData!$A$5:$A$29"
        .ChartType = xlColumnClustered
    End With
End With

我重新格式化了与图表的所有交互,以使用“with”而不是选择。 它更好的编程。

不幸的是,这并没有解决问题。

关于Print Spooler的评论很有帮助,看起来这个问题与图表在屏幕和打印机上的显示方式的交互有关。

参考

由于我组织中的许多其他用户使用不同的打印机,并且在尝试MS Office打印驱动程序时默认情况下没有改进恢复,因此必须找到另一种解决方案。

使用VBA代码将工作表元素复制到PowerPoint时出现此问题。 使用以下方式复制为打印机,bitmat:

rSlideArea.CopyPicture (2)  

更改为使用以下方式复制为屏幕位图:

rSlideArea.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

有趣的是,带有位图格式的PowerPoint文件更易于使用并且更小。

结果是PowerPoint中的图片不像屏幕格式那样漂亮,但应用程序现在可以在Excel v2010中使用,这是当务之急。

感谢所有帮助过的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM