Создание динамической регрессии c - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь сделать мой регрессионный анализ динамическим c, используя приведенный ниже код, однако я продолжаю получать ошибку Regression-LINEST при запуске кода (см. Изображение ниже для ошибки). Мой ввод Y находится в столбце C, а мой ввод X - в столбце A (см. Изображение ниже). Возможно, я сделал что-то не так с моими входами X и Y или столбцами

Dim lastRow As Long

lastRow = Sheets("Holding Cost").Cells(Rows.Count, "A").End(xlUp).Row

Application.Run "ATPVBAEN.XLAM!Regress", Sheets("Holding Cost").Range(Cells(2, 3), Cells(lastRow, 3)), _
    Sheets("Holding Cost").Range(Cells(2, 1), Cells(lastRow, 1)), False, True, , Sheets("Holding Cost").Range("$k$2"), _
    , False, False, False, False, , False

enter image description here

enter image description here

1 Ответ

2 голосов
/ 07 апреля 2020

Sheets("Holding Cost").Range(Cells(2, 3), Cells(lastRow, 3)) завершится ошибкой, если «Стоимость удержания» не является активным листом.

lastRow = Sheets("Holding Cost").Cells(Rows.Count, "A").End(xlUp).Row завершится ошибкой, если активным листом будет лист, отличный от рабочего листа (ie. Лист с диаграммой).

Я не математик, поэтому, предположив, что ссылки на ваши столбцы верны, попробуйте следующее ...

Dim holdingCostWorksheet As Worksheet
Set holdingCostWorksheet = Worksheets("Holding Cost")

Dim lastRow As Long
With holdingCostWorksheet
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

With holdingCostWorksheet
    Application.Run "ATPVBAEN.XLAM!Regress", .Range("C2:C" & lastRow), .Range("A2:A" & lastRow), False, True, , .Range("$k$2"), , False, False, False, False, , False
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...