我正在尝试将范围绘制到已在工作表上创建的绘图。在下面的代码中,它被称为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
答案 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