У меня есть функция с двумя аргументами, x данными из вектора столбца и y данными из другого вектора столбца. Затем я хочу найти наклон и пересечение с помощью функций листа. Тем не менее, мне трудно форматировать вывод массива для двух ответов (наклон и перехват). Мой текущий код ниже. Я новичок в диапазонах и массивах, поэтому любая помощь будет оценена!
Function yCalc(xRange As Range, yRange As Range) As Variant
Dim X() As Double, Y() As Double, Z() As Double
Dim i As Integer, j As Integer, nr As Integer, nc As Integer, mr As Integer, mc As Integer
nr = xRange.Rows.Count
nc = xRange.Columns.Count
mr = yRange.Rows.Count
mc = yRange.Columns.Count
ReDim X(1 To nr, 1 To 1)
ReDim Y(1 To mr, 1 To 1)
ReDim Z(1 To nr, 1 To 1) As Double
For i = 1 To nr
Z(1, 1) = WorksheetFunction.Slope(Y, X)
Z(2, 1) = WorksheetFunction.Intercept(Y, X)
For j = 1 To nc
Z(i, 1) = 0
Next j
Next i
yCalc = Z()
End Function
Вот аналогичный код, который я сделал в подпрограмме.
Sub ycalc2()
Dim i As Integer, n As Integer, m As Integer
Dim xRange As Range
Dim yRange As Range
Dim Slope As Double
Dim Intercept As Double
Set xRange = Application.InputBox("Select x Range!", "MP4 Q2", , , , , , 8)
n = xRange.Count
Set yRange = Application.InputBox("Select y Range!", "MP4 Q2", , , , , , 8)
m = yRange.Count
Slope = WorksheetFunction.Slope(yRange, xRange)
Intercept = WorksheetFunction.Intercept(yRange, xRange)
MsgBox ("Slope = " & Slope & Chr_13 & " Intercept = " & Intercept)
End Sub