To Zero - just recreate it Dim matrix() as long redim matrix(size) To set initial values.. Try creating a template and assigning whenever you want to reinitialise the array Dim template() As Long Dim initialiseWithTemplate() As Long Dim i As Long ReDim template(10) ReDim initialiseWithTemplate(10) For i = 0 To 10 template(i) = i Next i initialiseWithTemplate = template template(1) = 100 'Show has copied not set reference For i = 0 To 10 Debug.Print template(i) Debug.Print initialiseWithTemplate(i) Next i James -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads