Я пытаюсь сделать некоторые вычисления для проверки данных в ячейке, сравнив значение со средним значением из его строки и поместив результат проверки в другую таблицу.Ошибка VBA Runtime 91
Когда я запускаю мой код, я получил:
Run Time Error '91': Переменная объекта или блока не указан
Я не знаю, что я пропускаю. Итак, вот мой код:
Private Sub CommandButton17_Click()
Dim SelectedCheckCell As Range, LastValue As Range, ValidationValue As Range, LastValidatedCell As Long
Dim Average As Integer, SelectedRow As Integer, LastValidation As Integer
Dim result As String, result2 As String, SelectedCol As String
Set SelectedCheckCell = Application.InputBox("Select initial cell to validate:", xTitleId, Selection.Address, Type:=8)
Set LastValue = Application.InputBox("Select last cell to calculate:", xTitleId, Selection.Address, Type:=8)
Set ValidationValue = Application.InputBox("Select initial cell to place result of validate:", xTitleId, Selection.Address, Type:=8)
SelectedRow = Split(SelectedCheckCell.Address, "$")(2)
SelectedCol = Split(LastValue.Address, "$")(1)
LastValidatedCell = Cells(Rows.Count, 2).End(xlUp).Row
LastValidation = Split(LastValidatedCell.Address, "$")(2)
result = "OK"
result2 = "NOT OK"
For i = SelectedRow To LastValidation
Average = Application.WorksheetFunction.Average(Range("C" & i & ":" & SelectedCol & i))
If ((SelectedCheckCell.value < (Average - (Average * 0.1))) Or (SelectedCheckCell.value > (Average + (Average * 0.1)))) Then
ValidationValue.value = result
Else
ValidationValue.value = result2
End If
SelectedCheckCell = SelectedCheckCell.Offset(1, 0)
ValidationValue = ValidationValue.Offset(1, 0)
Next i
End Sub
Спасибо!
Не должно ** Среднее ** быть двойным типом var? По моему опыту, в среднем по многим числам очень редко разрешается четное целое число. – Jeeped