我正在做Excel的一个现有的启用宏的电子表格功能的Mac 2011的Excel for 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 for Mac 2011中,我收到错误:
Runtime error '9': Subscript out of range
我除了把它弄坏了,发现UBound函数调用是什么导致错误。
我想尽可能少地改变可维护性。我该如何解决Mac版本的这个错误?
在此先感谢您的回复!
编辑: @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中进行了测试。它对我来说绝对好。希望你传递一个数组到一个函数?你能告诉我你是如何调用这个功能的? – 2013-04-26 17:03:30