如何使用VBA更改图表的数据范围

时间:2018-07-03 15:39:12

标签: excel vba excel-vba

我正在尝试编写一个宏,该宏将更改图表的数据源列。

数据范围是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

0 个答案:

没有答案