添加新系列

时间:2018-01-09 08:51:31

标签: vba excel-vba excel

我想绘制一个条形图,上面有一条线。当我只绘制条形图时,会出现名称,但是当我添加另一个系列时,它会消失,并且通过添加ActiveChart.Name =“Name”不起作用,ActiveChart.Parent.Name =“Name”(这会更改表格的名称)。谢谢

 Dim myChtObj As ChartObject

Set myChtObj = ActiveSheet.ChartObjects.Add _
    (Left:=100, Width:=800, Top:=75, Height:=400)
myChtObj.Chart.ChartType = xlColumnClustered
myChtObj.Activate

With ActiveChart.SeriesCollection.NewSeries
    .Name = sheetName
    .Values = yValues
    .xValues = xValues
End With


ActiveChart.SeriesCollection.NewSeries.Name = "line"
ActiveChart.SeriesCollection("line").Values = yValues
ActiveChart.SeriesCollection("line").xValues = xValues
ActiveChart.SeriesCollection("line").ChartType = xlLine


ActiveChart.legend.Select
Selection.Delete

1 个答案:

答案 0 :(得分:0)

请参阅以下内容,为图表添加图表标题,并添加第二个系列参考,以确保按编号添加系列。我添加了一些虚拟值。适用于SeriesCollectionFullSeriesCollection

您可以使用宏录制器录制添加其他元素。

Option Explicit

Sub test()

Dim sheetName As String
Dim yValues As Range
Dim XValues As Range

sheetName = "aName"
Set yValues = Range("A2:A4")
Set XValues = Range("B2:B4")

Dim myChtObj As ChartObject

Set myChtObj = ActiveSheet.ChartObjects.Add _
    (Left:=100, Width:=800, Top:=75, Height:=400)

myChtObj.Chart.ChartType = xlColumnClustered
myChtObj.Activate
myChtObj.Name = "myChartName"

With myChtObj.Chart.SeriesCollection.NewSeries
    .Name = sheetName
    .Values = yValues
    .XValues = XValues
End With

myChtObj.Chart.SeriesCollection.NewSeries

With myChtObj.Chart
    .SeriesCollection(2).Name = "=""line"""
    .SeriesCollection("line").XValues = XValues
    .SeriesCollection("line").Values = yValues
    .SeriesCollection("line").ChartType = xlLine
    .Legend.Delete
    .SetElement (msoElementChartTitleAboveChart)
    .ChartTitle.Text = "My title" & Chr(13) & ""
End With

End Sub
相关问题