ReDim the Right Array!

ReDim the Right Array!

Many VB programmers use the Option Explicit statement to make sure each variable has been explicitly declared before using it. This means you’ll always notice a misspelled variable, which if not caught might cause your application to behave erratically. However, when you use the ReDim statement (documented, albeit ambiguously), Option Explicit can’t save you. Consider this procedure:

 Sub DisplayDaysInThisYear	Dim iDaysInYear(365)	' Initially dimension array	If ThisIsLeapYear() Then 	' Is this year a leap year?		ReDim iDaysInYr(366)		' Extra day this year!	End If	MsgBox "This year has " & _		UBound(iDaysInYear) & " days in it!"End Sub

This ReDim statement creates a new variable called iDaysInYr, even though you really wanted to reallocate the storage space of the iDaysInYear() array. So the message box displays the incorrect number of days in the year. You can’t prevent this from happening, other than being careful when coding the ReDim statement. However, if you use ReDim Preserve, Option Explicit makes sure the variable was previously declared.


Share the Post: