我想在我的图表数据中再添加一列,就像问题一样:
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轴的值?
谢谢你的帮助
答案 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值的唯一方法