创建带有范围和固定名称的图表
可以通过直接使用定义图表数据的 Series
对象来创建图表。为了在没有现有图表的情况下到达 Series
,你可以在给定的 Worksheet
上创建一个 ChartObject
,然后从中获取 Chart
对象。使用 Series
对象的好处是你可以通过参考 Range
对象来设置 Values
和 XValues
。这些数据属性将正确定义 Series
并引用这些范围。这种方法的缺点是在设置 Name
时不会处理相同的转换; 它是固定值。它不会根据原始 Range
中的基础数据进行调整。检查 SERIES
公式,很明显名称是固定的。这必须通过直接创建 SERIES
公式来处理。
用于创建图表的代码
请注意,此代码包含 Chart
和 Worksheet
的额外变量声明。如果不使用它们,可以省略。但是,如果要修改样式或任何其他图表属性,它们可能很有用。
Sub CreateChartWithRangesAndFixedName()
Dim xData As Range
Dim yData As Range
Dim serName As Range
'set the ranges to get the data and y value label
Set xData = Range("B3:B12")
Set yData = Range("C3:C12")
Set serName = Range("C2")
'get reference to ActiveSheet
Dim sht As Worksheet
Set sht = ActiveSheet
'create a new ChartObject at position (48, 195) with width 400 and height 300
Dim chtObj As ChartObject
Set chtObj = sht.ChartObjects.Add(48, 195, 400, 300)
'get reference to chart object
Dim cht As Chart
Set cht = chtObj.Chart
'create the new series
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
ser.Values = yData
ser.XValues = xData
ser.Name = serName
ser.ChartType = xlXYScatterLines
End Sub
代码运行后的原始数据/范围和生成的 Chart
请注意,SERIES
公式包含系列名称的 B
,而不是对创建它的 Range
的引用。