मैं मैक 2011एक्सेल मैक 2011 के लिए: UBound() काम नहीं कर रहा
के लिए एक मौजूदा मैक्रो-सक्षम स्प्रेडशीट एक्सेल पर कार्यात्मक बनाने पर काम कर रहा हूँ मैं एक समारोह (Source) है कि एक निर्धारित मूल्य के लिए सरणियों खोज :
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
यह एक्सेल 2013 में पूरी तरह से काम करता है, लेकिन मैक 2011 के लिए Excel पर, मैं त्रुटि प्राप्त:
Runtime error '9': Subscript out of range
मैं इसे अलग तोड़ दिया और पाया कि UBound कॉल क्या है त्रुटि का कारण बन रहा है।
मैं रखरखाव के लिए जितना संभव हो सके बदलना चाहता हूं। मैक संस्करण के लिए मैं इस त्रुटि को कैसे ठीक कर सकता हूं?
किसी भी उत्तर के लिए अग्रिम धन्यवाद!
संपादित करें: @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 में इसका परीक्षण किया। यह मेरे लिए बिल्कुल ठीक काम करता है। आशा है कि आप एक समारोह में एक ऐरे पास कर रहे हैं? क्या आप मुझे दिखा सकते हैं कि आप इस फ़ंक्शन को कैसे कॉल कर रहे हैं? –