更改图表系列数据中的Y值

时间:2018-01-26 13:30:10

标签: vba excel-vba excel

我想在我的图表数据中再添加一列,就像问题一样:
Move Chart series data via VBA
但是,他的代码正在改变图表的Y值,我无法找到如何更改X值

Dim ss As Series
Dim strs() As String
ActiveSheet.ChartObjects("Chart 3").Activate
Set ss = ActiveChart.SeriesCollection(2)
strs = Split(ss.Formula, ",")
Dim rg As Range
Set rg = Range(strs(1))
Set rg = rg.Resize(, rg.Columns.Count + 1)


ActiveChart.SeriesCollection(2).Values = rg

我现在使用的代码是改变Y轴的范围,给它X轴的范围(将其设置为Y范围+1的确切大小)。
编辑问题: 如何更改X ax的值? 如何更改Y轴的值? 谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

系列公式如下:

=SERIES(Summary!$B$1,Summary!$A$2:$A$4,Summary!$B$2:$B$4,1)

所以数组的元素是:

strs(0):=SERIES(Summary!$B$1主要是系列名称,
strs(1):Summary!$A$2:$A$4是X值,
strs(2):Summary!$B$2:$B$4是Y值,
strs(3):1)是剧情顺序和结束阶段。

定义你的范围:

Set rg = Range(strs(2))

而非strs(1),您将修改Y值。

答案 1 :(得分:0)

要更改X轴,请尝试如下(它会将x值移动到右侧的一列):

Sub test()

Dim ss As Series
Dim strs() As String
ActiveSheet.ChartObjects("Chart 3").Activate
Set ss = ActiveChart.SeriesCollection(2)
strs = Split(ss.Formula, ",")
Dim rg As Range
Set rg = Range(strs(1))   ' X-values
Set rg = rg.Offset(0, 1)  ' moving one column to the right
rg.Select                 ' Selecting range for testing purposes

ActiveChart.SeriesCollection(2).XValues = rg
'
End Sub

希望有所帮助。

答案 2 :(得分:0)

感谢Jon Peltier的回答,我提出了以下答案:

    Set ss = ActiveChart.SeriesCollection(2)
    strs = Split(ss.Formula, ",")
    Dim rg As Range
    Set rg = Range(strs(1))
    Set rg = rg.Resize(, rg.Columns.Count + 1)
    Dim strx() As String
    strx = Split(strs(1), "!")

    ActiveChart.SeriesCollection(2).Formula = strs(0) & "," & strx(0) & "!" & rg.Address & "," & strs(2) & "," & strs(3)

这似乎是改变X值的唯一方法