tôi đang làm việc trên thực hiện một bảng tính cho phép macro hiện chức năng về Excel cho Mac 2011.Excel cho Mac 2011: UBound() Không làm việc
Tôi có một chức năng (Source) để tìm kiếm các mảng cho một giá trị quy định :
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
nó hoạt động hoàn hảo trong Excel 2013, nhưng trên Excel cho Mac 2011, tôi nhận được lỗi:
Runtime error '9': Subscript out of range
tôi đã phá vỡ nó ra và phát hiện ra rằng các cuộc gọi UBound là gì gây ra lỗi.
Tôi muốn thay đổi ít nhất có thể để bảo trì. Làm thế nào tôi có thể sửa lỗi này cho phiên bản Mac?
Cảm ơn bạn trước đã trả lời!
Chỉnh sửa: @Siddharth Giải pháp tuyến đường là điểm, nhưng vì tôi đang tìm kiếm mảng trong vòng lặp, tôi phải sửa đổi vòng lặp để đặt lại mảng giữa mỗi lần lặp như sau (trong trường hợp bất kỳ ai khác chạy vào cùng một issue!):
' --- 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 ---
Chỉ cần thử nghiệm trong Excel 2011. Nó hoạt động tốt cho tôi. Hy vọng bạn đang đi qua một mảng để một chức năng? Bạn có thể chỉ cho tôi cách bạn gọi chức năng này? –