Private Sub Form_Load()
Dim arrdata()
Dim i As Single, j As Integer, tend As Single
j = 0
For i = Val(Form2.Text8.Text) To Val(Form2.Text38.Text) Step Val(Form2.Text9.Text) '0.0625
j = j + 1
GrafAlf i, tend ' процедура вычисляющая tend
ReDim Preserve arrdata(1 To j, 1 To 2) As Variant
arrdata(j, 1) = Str(i)
arrdata(j, 2) = tend
Next i
MSChart1.chartType = VtChChartType2dLine
MSChart1.ChartData = arrdata
End Sub
Death666 писал(а):Ещё один вопрос: где ошибка, почему ругается?
MSDN писал(а):Similarly, when you use Preserve, you can change the size of the array only by changing the upper bound; changing the lower bound causes an error.
Death666 писал(а):Так работает, но такой массив не засунешь в MSChart.
Ennor писал(а):Death666 писал(а):Так работает, но такой массив не засунешь в MSChart.
А транспонировать очищенный массив - религия не позволяет?
' На входе подразумевается, что массив arrdata() - это валидный двумерный массив
dim arr() as single
redim arr(lbound(arrdata(), 2) to ubound(arrdata(), 2), lbound(arrdata(), 1) to ubound(arrdata(), 1))
dim x as long, y as long
for x=lbound(arrdata(), 1) to ubound(arrdata(), 1)
for y = lbound(arrdata(), 2) to ubound(arrdata(), 2)
arr(y, x) = arrdata(x, y)
next y
next x
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 111