Я работаю с несколькими диапазонами. Каждый массив имеет один диапазон столбцов. Я определил свои массивы как массив вариантов. И я поместил одну спинбут в текстовое поле, чтобы получить значение точного ввода из диапазона массива.
Пример массива:
...
fiber_oList = ThisWorkbook.Sheets("sarfArray").Range("B2:B18").Value2
mySpinButton.Max = UBound(fiber_oList, 1) - LBound(fiber_oList, 1) + 1
mySpinButton.Min = LBound(fiber_oList, 1)
Kal.Value = fiber_oList(mySpinButton.Value, 1)
...
и у меня есть функция для получения номера индекса определенного значения из массива.
Public Function whichIndex(araArray As Variant, vBul As Variant) As Integer
'
'
Dim i As Integer
If IsArray(araArray) Then
For i = 1 To UBound(araArray, 1)
If araArray(i, 1) = vBul Then
whichIndex = i
Exit Function
End If
Next i
whichIndex = Null
Else
MsgBox "Bu bir array değil."
End If
End Function
и затем я использовал результат своей функции, как показано ниже:
temp = whichIndex(fiber_oList, tekKal)
mySpinButton.Value = temp
Код работает правильно для первого массива. Но для второго массива это выдает ошибку:
Функция
дает результат функции IsArray
FALSE
.
и VBA дает
RUN TIME ERROR '380': не удалось установить свойство Value. Неверное значение свойства.
Что я могу сделать для этой проблемы?