| A tip for determining the size of a VB dynamic array Dynamic arrays are great tools for creating a collection of values on the fly. However, you may have run into trouble when trying to determine if the array contains any items. The UBound() function provides one way to tell if it does. However, if the array doesn't officially exist yet--that is, you haven't redimensioned it with even a single item--then this function generates an error. To accommodate this problem, some people suggest automatically redimensioning the array with its first item, for instance: ReDim strCats(0) However, why have Visual Basic create the array if it potentially may not use it? Another often-suggested alternative is to use a counter variable; something along the lines of: MyUpper = 0 Sub AddValue(strValue as String) ReDim Preserve strCats(MyUpper) strCats(MyUpper) = strValue MyUpper = MyUpper + 1 End Sub While this method works, the counter technique can get messy in large applications; not to mention redundant. After all, Visual Basic already keeps track of the current upper boundary, so it's much more efficient to let it do the job for you. As a more efficient method, try simply trapping for the error that the UBound() function throws when the array doesn't contain any items (Error 9, subscript out of range), as in: Private Function GetUpper(varArray As Variant) As Integer Dim Upper As Integer 'on error resume next Upper = UBound(varArray) If Err.Number Then If Err.Number = 9 Then Upper = 0 Else With Err MsgBox "Error:" & .Number & "-" & .Description End With Exit Function End If Else Upper = UBound(varArray) + 1 End If On Error GoTo 0 GetUpper = Upper End Function |
A tip for determining the size of a VB dynamic arr |
India web developer web development India | Freelance web development ecommerce web developer | Prayagasoft - web designer India, Ecommerce developer india, Ecommerce design