首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel 2010 VBA删除图表

Excel 2010 VBA删除图表
EN

Stack Overflow用户
提问于 2011-10-28 02:23:54
回答 2查看 3.8K关注 0票数 3

我在业余时间支持Excel VBA应用程序。我是制造工艺工程师,不是专业开发人员。

该应用程序的图表部分在Excel2007中可以正常工作。我的公司正在升级到Excel2010,该应用程序在与工作表上的图表交互时出现了问题。

这个问题是关于条形图的。应用程序在重置时,使用以下代码从图表中删除该系列。我这样做是为了在导入/处理新数据时,不会有不是最新数据的图表呈现给用户。

代码语言:javascript
运行
复制
        '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

然后在从外部数据文件导入要绘制图表的新数据时创建新系列:

代码语言:javascript
运行
复制
    '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代码时,整个条形图会“丢失”(删除),而不是没有任何定义的系列的图表出现。

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

当手动执行图表序列时,它不会出现任何问题。当自动运行时,在生成第二个聊天序列时,图表将被删除。

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

谢谢,

镜头

EN

回答 2

Stack Overflow用户

发布于 2011-10-28 03:15:08

这可能有助于重写你的代码,这样你就不会激活/选择,然后依赖于“活动”对象没有改变:如果一些其他代码在你不期望的情况下激活了其他对象,这可能会中断……

代码语言:javascript
运行
复制
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
票数 2
EN

Stack Overflow用户

发布于 2011-11-10 00:38:59

我改进了与图表的所有交互,使用" with“而不是”selecting“。这是更好的编程。

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

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

Reference

由于我的组织中的许多其他用户都有不同的打印机,当尝试默认使用MS Office打印驱动程序时,无法改善restuls,因此必须找到另一种解决方案。

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

代码语言:javascript
运行
复制
rSlideArea.CopyPicture (2)  

更改为使用以下命令复制为屏幕位图:

代码语言:javascript
运行
复制
rSlideArea.CopyPicture Appearance:=xlScreen, Format:=xlBitmap

有趣的是,采用位图格式的PowerPoint文件更容易处理,而且更小。

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

感谢所有帮助我的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7920507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档