Я пытаюсь научить себя VBA писать некоторые мелочи. Я пытаюсь сделать что-то, что позволяет вам выбирать некоторые данные, а затем вычисляет среднее значение и дисперсию. Мой код выглядит следующим образом:Создание выделенного диапазона в массив и ведение дел с ним
Sub VarianceCalculator()
Dim k As Integer
Dim SelectedData As Range
Dim SelectedDataArray() As Variant
Dim Var As Double
Dim Mu As Double
On Error Resume Next
Set SelectedData = Application.InputBox("Select a range of data to be
calculated", Default:=Selection.Address, Type:=8)
On Error GoTo 0
SelectedDataArray = Range(SelectedData.Address)
k = UBound(SelectedDataArray)
Call VarianceCalculatorWithArray(SelectedDataArray, k)
MsgBox ("The selected data has variance " & Var & " and has mean " & Mu)
End Sub
Sub VarianceCalculatorWithArray(Data() As Variant, k As Integer)
Dim Var As Double
Dim Mu As Double
Dim j As Integer
Dim i As Integer
ReDim Data(k) As Variant
Mu = 0
Var = 0
For j = 0 To k
Mu = Mu + (Data(j))/(k + 1)
Next j
For i = 0 To k
Var = Var + ((Data(i) - Mu)^(2))/(k + 1)
Next i
End Sub
Я думаю, что ошибка в том, что каким-то образом данные не получает переданы в массив, но я не могу найти решение этой проблемы.
Спасибо!
Вы пробовали пройти через код и проверить, что находится в ваших переменных? – Theresa
Какая ошибка вы получаете и на какой строке. – MatthewD
BTW, вот место для начала. Это даст вам общее введение. Не для deep.http: //www.excelvbatutor.com/vba_book/vbabook_ed2.pdf – MatthewD