Я работаю на том, существующий с поддержкой макросов таблицы функционал Excel для Mac 2011.Excel для Mac 2011: UBound() не работает
У меня есть функция (Source), который ищет массивы для заданного значения :
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
Он отлично работает в Excel 2013, но на Excel для Mac 2011, я получаю сообщение об ошибке:
Runtime error '9': Subscript out of range
Я сломал ее на части и обнаружил, что вызов UBound является то, что вызвав ошибку.
Я хотел бы как можно меньше изменить ремонтопригодность. Как я могу исправить эту ошибку для версии Mac?
Заранее благодарим за любые ответы!
Edit: решение @Siddharth разгромить является пятно, но так как я искал массивов в цикле, я должен был изменить цикл, чтобы сбросить массив между каждой итерации следующим образом (в случае, если кто-то работает в то же самое вопрос!):
' --- START Reset Array for OS X ---
Dim OS_X_Hack(99) As String
For intIndex = 0 To 99
OS_X_Hack(intIndex) = Original(intIndex)
Next
Erase Original()
ReDim Original(0 To 99) As String
For intIndex = 0 To 99
Original(intIndex) = OS_X_Hack(intIndex)
Next
Erase OS_X_Hack()
' --- END Reset Array for OS X ---
Просто протестирован в Excel 2011. Он работает для меня совершенно нормально. Надеюсь, вы передаете массив в функцию? Можете ли вы показать мне, как вы называете эту функцию? –