所以我有一个生成3个One-Dimensional Arrays的代码(每个30个元素)。第一个数组有日期(x值),其他2个数组有数字(1是公司K 2的销售额是当天公司M的销售额)。现在我想使用VBA将这些数组用作系列。我遇到过一个简单的代码,并试图将它用于我的目的......但这是我第一次在vba中使用图表,而且我从来没有很好地开始制作图表。请帮忙!
您可以假设我有Date
,Sales_K
和Sales_M
作为索引从1到30(30个条目)的数组
Dim myChart As Chart
Dim mySeries As Series
Set myChart = Charts.Add
Set myChart = myChart.Location(Where:=xlLocationAsObject, Name:="Sheet1")
'有点迷失在这里我不知道如何激活图表,或者如果定义一个"图表"之间的重要区别。和" chartObject"
Set myChart = ActiveChart
Set mySeries = myChart.SeriesCollection(1)
series.xvalues = Date
series.values = Sales_K 'How do I add Sales_M y value series??
请保持尽可能简单。我尝试在图表上观看一些youtube视频,但他们开始使用" Parent"图表的属性...我想要的是使用数组创建一个包含2行和日期作为x值的折线图。
答案 0 :(得分:0)
您可以通过newSeries方法添加另一个系列,如下所示。如果您愿意,您也可以重复使用相同的XValues。
ChartObject是占位符对象,Chart包含所有细节(放置它的简单方法)。
Public Sub makeChart()
Dim ch As Chart
Dim ws As Worksheet
Dim arr1 As Variant, arr2 As Variant, arr3 As Variant
Dim ser As Series, ser2 As Series
Set ws = Sheet5
Set ch = ws.chartObjects.Add(Left:=100, Top:=100, Width:=500, Height:=400).Chart
ch.ChartType = xlLine
arr1 = Array(10, 15, 12, 25, 35, 20)
arr2 = Array(17, 33, 20, 45, 11, 40)
'arr3 = Array("01/05/2016", "02/05/2016", "03/05/2016", "04/05/2016", "05/05/2016", "06/05/2016")
arr3 = Array(DateValue("01/05/2016"), DateValue("02/05/2016"), DateValue("03/05/2016"), _
DateValue("04/05/2016"), DateValue("05/05/2016"), DateValue("06/05/2016"))
Set ser = ch.SeriesCollection.NewSeries
ser.XValues = arr3
ser.Values = arr1
Set ser2 = ch.SeriesCollection.NewSeries
ser2.Values = arr2
End Sub