全新的VBA。 需要macros的帮助才能将图表添加到图表中

我是VBA的新手,所以我正在努力使我觉得应该是一个简单的macros。 我在这里研究了很长时间,试图弄清楚,但我不明白什么是错的。 我在Excel中有1到200行的200个系列。 每个系列有两个x值(在B和C)和两个y值在(D和E),我正在试图做一个XYScatterLine图。 我想制作一个macros,将所有这些系列中的200个添加到图表中。 我试图写一个macros下面,但它不工作,我感到困惑。 任何帮助将不胜感激!!

Sub graph() Dim a ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterLines For a = 1 To 200 With ActiveChart With .SeriesCollection.NewSeries .XValues = Sheets(Sheet1).Range("B" & a & ":C" & a) .Values = Sheets(Sheet1).Range("D" & a & ":E" & a) .Name = "name" End With End With Next End Sub 

我觉得我的错误是从.Xvalues行开始的,因为图表会生成,但是没有一个系列被绘制。 我非常感谢您提供的帮助!

 Sub graph() Dim cht As Chart Dim a, sht Set sht = Sheets("Sheet1") Set cht = ActiveSheet.Shapes.AddChart.Chart cht.ChartType = xlXYScatterLines For a = 1 To 19 With cht.SeriesCollection.NewSeries .Name = "name" .Values = sht.Range("D" & a & ":E" & a) .XValues = sht.Range("B" & a & ":C" & a) End With Next End Sub 

这有帮助吗?

 ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterLines ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "=[Add Series Name]" ActiveChart.SeriesCollection(1).XValues = "=Sheet1!$B$1:$B$200" ActiveChart.SeriesCollection(1).Values = "=Sheet1!$D$1:$D$200" ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).Name = "=[Add Series Name]" ActiveChart.SeriesCollection(2).XValues = "=Sheet1!$C$1:$C$200" ActiveChart.SeriesCollection(2).Values = "=Sheet1!$E$1:$E$200" 

如果他们不完全匹配您的工作表,您可能需要修改我使用过的列引用。

我还会注意到,这个代码是非常静态的,如果你的数据集增加到200行以上,这个代码是不会改变的。

将表格名称放在引号中。 也就是说,改变这个:

  .XValues = Sheets(Sheet1).Range("B" & a & ":C" & a) .Values = Sheets(Sheet1).Range("D" & a & ":E" & a) 

对此:

  .XValues = Sheets("Sheet1").Range("B" & a & ":C" & a) .Values = Sheets("Sheet1").Range("D" & a & ":E" & a)