pracuję na co istniejąca makr arkusza kalkulacyjnego Excel na funkcjonalne dla Mac 2011.Excel 2011 dla komputerów Mac: Ubound() nie działa
Mam funkcji (Source), który przeszukuje tablice dla określonej wartości :
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
to działa doskonale w programie Excel 2013, ale w programie Excel 2011 dla komputerów Mac, otrzymuję błąd:
Runtime error '9': Subscript out of range
złamałem go od siebie i stwierdził, że jest to, co wezwanie Ubound powoduje błąd.
Chciałbym zmienić jak najmniej możliwości konserwacji. Jak mogę naprawić ten błąd dla wersji na Maca?
Z góry dziękuję za wszelkie odpowiedzi!
Edit: rozwiązanie @Siddharth trasa jest na miejscu, ale ponieważ szukałem tablic w pętli, musiałem zmodyfikować pętlę zresetować tablicę między każdej iteracji następująco (w przypadku gdy ktoś inny prowadzi do tego samego wydanie!):
' --- 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 ---
Właśnie przetestowałem to w programie Excel 2011. Działa to dla mnie absolutnie dobrze. Mam nadzieję, że przekazujesz tablicę do funkcji? Czy możesz mi pokazać, jak nazywasz tę funkcję? –