vba从数组中的范围绘图

时间:2014-04-11 17:58:52

标签: arrays excel vba

我正在尝试将范围绘制到已在工作表上创建的绘图。在下面的代码中,它被称为chart1。问题是Xvals和Yvals是范围的数组。我需要在每个数组中绘制一定范围,如图所示。我得到的错误是“NewSeries.Values = TempX “line is”RunTime error'5':无效的过程调用或参数“.tempX和tempY被定义为变体。我也尝试将它们定义为范围。我也尝试将Xvals(BoxNum)直接分配给.Xvalues .BoxNum是一个整数,对应于数组中要绘制的点。任何想法我做错了什么?提前感谢!

    series.NewSeries
    Set TempX = Xvals(BoxNum)
    Set TempY = Yvals(BoxNum)
    Set NewSeries = chart1.SeriesCollection(chart1.SeriesCollection.Count)
    NewSeries.Name = "Adjusted"
    NewSeries.Values = TempX
    NewSeries.XValues = TempY

1 个答案:

答案 0 :(得分:1)

我不确定你想做什么。问题不够清楚,但以下代码可能适合您的目的。 为什么不使用with语句来简化代码?另外,我不确定为什么你必须使用TmpX和TmpY,而是直接将值应用于图表。

Sub setArrayToChart()
   Dim chat1 As Chart
   Dim Xvals(2) As Range, Yvals(2) As Range
   Dim boxNum As Integer

   Set chart1 = Charts("chart1")

   Set Xvals(0) = Range(Cells(1, 1), Cells(3, 1))
   Set Xvals(1) = Range(Cells(1, 2), Cells(3, 2))

   Set Yvals(0) = Range(Cells(1, 3), Cells(3, 3))
   Set Yvals(1) = Range(Cells(1, 4), Cells(3, 4))

   boxNum = 1

   Set TempX = Xvals(boxNum)
   Set TempY = Yvals(boxNum)

   With chart1.SeriesCollection.NewSeries
      .Name = "Adjusted"
      .Values = TempX
      .XValues = TempY
   End With
End Sub