Hi,
To clear your array use the Erase keyword.
Your right excel should release objects when finish. But your example does not let excel know your finished. So the module level variables remain valid.
You can use the keyword End to tell excel you are completely finished.
Public Sub BreakMe()
Dim i As Long, j As Long
On Error GoTo Uninitialized_Error:
ReDim Preserve m_audtNewTypes(UBound(m_audtNewTypes) + 1)
Uninitialized_Resume:
On Error GoTo 0
ReDim m_audtNewTypes(UBound(m_audtNewTypes)).alngNums(0 To 9)
For i = 0 To UBound(m_audtNewTypes)
For j = 0 To 9
m_audtNewTypes(i).alngNums(j) = j
Next j
Next i
'***************
'with this line in it fails every second run.
' Use Erase to clear array
Erase m_audtNewTypes
' ReDim m_audtNewTypes(0)
'****************
' Use End to release variables declared at module level
' End
Exit Sub
Uninitialized_Error:
ReDim m_audtNewTypes(0)
Resume Uninitialized_Resume
End Sub