我正在努力使现有的启用宏的电子表格在 Excel for Mac 2011 上运行。
我有一个函数(Source)在数组中搜索指定值:
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
它在 Excel 2013 中完美运行,但在 Excel for Mac 2011 上,我收到错误:
Runtime error '9': Subscript out of range
我把它拆开,发现 UBound 调用是导致错误的原因。
为了可维护性,我想尽可能少地进行更改。如何为 Mac 版本修复此错误?
提前感谢您的任何回复!
编辑: @Siddharth Rout 的解决方案是正确的,但由于我在循环中搜索数组,我不得不修改循环以在每次迭代之间重置数组,如下所示(以防其他人遇到同样的问题!):
' --- 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 ---