这实际上是两个不同的问题。首先,我有一个包含三列数据的Excel表格。我在A,C和E列中有12行数据。从我一直在查找,该程序应该将列A分配给x轴,将列C和D分配给y轴,同时还添加标签
Sub ChartMaker()
ActiveWorkbook.Charts.Add
With ActiveWorkbook.ActiveChart
.ChartType = xlXYScatterLines
ActiveChart.SetSourceData Source:=Range("A1:A12,C1:C12,E1:E12")
.Location xlLocationAsNewSheet
.HasTitle = True
.ChartTitle.Characters.Text = "CFL Over Time"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time (Days)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "CFL"
.Axes(xlCategory).HasMajorGridlines = True
.Axes(xlCategory).HasMinorGridlines = False
.Axes(xlValue).HasMajorGridlines = True
.Axes(xlValue).HasMinorGridlines = False
.HasLegend = False
End With
End Sub
我不断收到错误“对象变量或未设置块变量”。
这是我的第一个问题!
我的第二个问题是如何使用以下数据集创建图表,其中y轴上有两组数据,但它们共享一个x轴。
数据集一:
X Y1
1 0.87
2 0.45
3 0.92
4 0.03
5 0.99
6 0.45
7 0.63
8 0.83
9 0.28
10 0.66
数据集二:
X Y2
0.3 2
4.5 3
6 6
7.2 1
7.8 6
8.3 1
9.1 4
9.6 5
10 9
13 2
有没有办法在同一个图表上显示这些内容? (当然使用VBA)
答案 0 :(得分:4)
创建图表后
ActiveSheet.Shapes.AddChart.Select
'this adds the chart and selects it in the same statement
ActiveChart.ChartType = xlXYScatter
然后添加第一组点
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=Sheet1!$C$1"
ActiveChart.SeriesCollection(1).XValues = "=Sheet1!$A$3:$A$12"
ActiveChart.SeriesCollection(1).Values = "=Sheet1!$C$3:$C$12"
并使用相同的方法添加第二组
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "Sheet1!$E$1"
ActiveChart.SeriesCollection(2).XValues = "=Sheet1!$D$3:$D$12"
ActiveChart.SeriesCollection(2).Values = "=Sheet1!$E$3:$E$12"