我正在尝试编写一个宏,该宏将更改图表的数据源列。
数据范围是C4:F13,10行4列。列是变量,行是样本。采样时间在B列中,范围为B4:B13。我想将变量绘制为采样时间的函数,并且编写了一个宏,该宏从C列获取值并将其绘制为时间的函数(B列)。
我想要一个宏,该宏可以从绘图中删除当前序列,并将数据源更改为下一列。因此,每次我运行宏时,都会发生相同的事情。另一个返回旧值的宏也会很好。 我一直在尝试解决此问题,但不知道如何解决。目前,我的代码如下所示。因此,当我运行宏时,我想将带问号的数字的值更改为1,并删除旧系列。
Option Explicit
Option Base 1
'Variables
Dim Cht As ChartObject
Dim Sht As Worksheet
Dim Var As Range
Dim Dat As Range
Dim InputData As Variant
Private Sub CommandButton1_Click()
Set Sht = Worksheets("Trends")
Set Cht = Sht.ChartObjects.Add(100, 100, 500, 250)
Set Var = Sht.Range(Cells(4, ?3?), Sht.Cells(Sht.Rows.Count, ?3?).End(xlUp))
Set Dat = Sht.Range(Cells(4, 2), Sht.Cells(Sht.Rows.Count, 2).End(xlUp))
Set InputData = Union(Var, Dat)
With Cht.Chart
.ChartType = xlLineMarkersStacked
.ChartStyle = 332
.Legend.Delete
.Axes(xlValue).MajorGridlines.Format.Line.Visible = msoTrue
.Axes(xlCategory).CategoryType = xlCategoryScale
.ApplyDataLabels
.SetSourceData InputData
.SeriesCollection(1).XValues = Dat
With .SeriesCollection(1)
.Name = Var.Cells(1).Offset(-1, 0).Value
.Format.Line.Weight = 0.5
.MarkerSize = 2
End With
End With
End Sub