Как разрешить пользователям выбирать диапазон значений X1, X2 ... и Y в множественной регрессии с помощью Excel VBA - PullRequest
0 голосов
/ 01 октября 2018
Sub trail()

Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$H$1:$H$" & Range("H" & Rows.Count).End(xlUp).Row) _
        , ActiveSheet.Range("$I$1:$L$" & Range("L" & Rows.Count).End(xlUp).Row), False, True, 95, ActiveSheet.Range( _
        "$V$2"), True, True, False, False, , False


End Sub

Здесь вместо Range от «H: H» и «I: L» я хочу предложить пользователю выбрать диапазон.

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете использовать InputBox, чтобы запросить у пользователя диапазоны и указать Type = 8 для диапазона, а затем потенциально использовать Linest

Option Explicit
Public Sub GetRegressionStatistics()
    Dim rX As Range, yRange As Range, vStat As Variant, xRange1 As Range, xRange2 As Range, xRange3 As Range

    Set xRange1 = [A2:A4] 'Application.InputBox("Please select x1 values", Type:=8)
    Set xRange2 = [B2:B4] 'Application.InputBox("Please select x2 values", Type:=8)
    Set xRange3 = [C2:C4] 'Application.InputBox("Please select x3 values", Type:=8)

    Set yRange = [D2:D4] ' Application.InputBox("Please select y values. The dimensions of y must match x", Type:=8)
    Set rX = Application.Union(xRange1, xRange2, xRange3)

    vStat = Application.WorksheetFunction.LinEst(yRange, rX, True, True)

    [F1].Resize(UBound(vStat, 1) + 1, UBound(vStat, 1) + 2) = vStat

End Sub

Выше адаптировано из здесь .

Информация о Linest.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...