Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9351|回复: 3

如何用vba获得Excel图表的数据源

[复制链接]
发表于 2009-10-29 02:28 | 显示全部楼层 |阅读模式

如何用vba获得Excel图表的数据源

在已经存在的EXCEL中已经有图表了,现在的问题是如何通过VBA获得图表的数据源,我可以获得图表的数据系列,但是怎么也找不到数据源用什么?

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2009-10-29 05:24 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2009-10-29 07:57 | 显示全部楼层

通过下面的方法可以使得图表的系列数据在列。通过Chart1对象的PlotBy属性可以设置或获取系列数据的值。

Private Sub ChangePlotToRows()
    Me.Range("A1", "A5").Value2 = 22
    Me.Range("B1", "B5").Value2 = 55

    Dim Chart1 As Microsoft.Office.Tools.Excel.Chart = _
        Me.Controls.AddChart(Me.Range("D2", "H12"), "Chart1")

    Chart1.SetSourceData(Me.Range("A1", "B5"), Excel.XlRowCol.xlColumns)
    Chart1.ChartType = Excel.XlChartType.xl3DColumn

    If DialogResult.Yes = MessageBox.Show("The chart is " & _
        "currently plotted by columns. Change to plot by rows?", _
        "Example", MessageBoxButtons.YesNo) Then
        Chart1.PlotBy = Excel.XlRowCol.xlRows
    End If
End Sub

通过SetSourceData方法可以设置图表的数据源,例子中的数据源被设置为Range("A1", "B5")。

但是如何获得图表的数据源呢?

假如一个图表已经存在,如何获得这个图表的数据源呢?

回复

使用道具 举报

 楼主| 发表于 2009-10-29 12:22 | 显示全部楼层

问题解决了

使用这个

?Worksheets(2).ChartObjects(1).Chart.SeriesCollection(1).Formula

返回是这样的字符  =SERIES(,Sheet2!$A$2:$A$8,Sheet2!$C$2:$C$8,1)

还有更好的办法,可以讨论。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 19:15 , Processed in 0.311793 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表