我正在做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