Вот моя проблема: я пытаюсь реализовать функцию тренда в макросе, но получаю ошибку 1004. Я пробовал несколько модификаций, но до сих пор не смог исправить проблему, которая, вероятно, происходит из определенияиз моих объектов.
Я прикрепил код вниз: первая часть берет данные из одного листа Excel и создает переменные, необходимые для функции тренда:
Sub PolynomialeApproximation()
Set mySheet = ActiveSheet
nb_lg = mySheet.Cells.SpecialCells(xlCellTypeLastCell).Row
nb_cl = mySheet.Cells.SpecialCells(xlCellTypeLastCell).Column
nb_x2 = 100
Dim Tabl1(101, 7) As Variant
Dim Tabl2(100, 6) As Variant
Dim x1(100, 6) As Variant
Dim x2(6) As Variant
Dim y1(100) As Variant
Dim y2(100) As Variant
cl = 1 'define the column number of the new table
For j = 1 To nb_cl
If InStr(mySheet.Cells(1, j).Value, "distance rect [mm]") <> 0 Then
For i = 1 To nb_lg - 1
Tabl1(i, cl) = ActiveSheet.Cells(i + 1, j).Value
Tabl1(i, cl + 1) = (mySheet.Cells(i + 1, j).Value) ^ 2
Tabl1(i, cl + 2) = (mySheet.Cells(i + 1, j).Value) ^ 3
Tabl1(i, cl + 3) = (mySheet.Cells(i + 1, j).Value) ^ 4
Tabl1(i, cl + 4) = (mySheet.Cells(i + 1, j).Value) ^ 5
Tabl1(i, cl + 5) = (mySheet.Cells(i + 1, j).Value) ^ 6
Tabl1(i, cl + 6) = mySheet.Cells(i + 1, j - 1).Value
Next i
lg = -5
For ite = 1 To nb_x2
Tabl2(ite, 1) = lg
Tabl2(ite, 2) = lg ^ 2
Tabl2(ite, 3) = lg ^ 3
Tabl2(ite, 4) = lg ^ 4
Tabl2(ite, 5) = lg ^ 5
Tabl2(ite, 6) = lg ^ 6
Вот какданные устанавливаются в массиве непосредственно перед использованием функции тренда:
For subite = 1 To nb_lg - 1
y1(subite) = Tabl1(subite, 7)
For subite2 = 1 To 6
x1(subite, subite2) = Tabl1(subite, subite2)
Next subite2
Next subite
For subite2 = 1 To 6
x2(subite2) = Tabl2(ite, subite2)
Next subite2
y2(ite) = Application.WorksheetFunction.Trend(y1, x1, x2)
lg = lg + 0.1
Next ite
cl = cl + 8
End If
Next j
End Sub
Точная строка, вызывающая проблемы:
y2(ite) = Application.WorksheetFunction.Trend(y1, x1, x2)