I've forgotten quite a bit of VB since I switche over to C#. Just to confirm, are you using the script within the reports? From the syntax it looks like you are trying to write a custom scrpit so that you do not have blank rows within a report. If this is the case I have battled with this myself and finally gave up!
I agree with Nikolas re the array I think it should be address(4) but the thing that I don't understand is why you do not get a OutOfRangeIndex Error when you try and reference address(3) when it only has 3 indexs? But maybe in VBS arrays are dynamic like vectors?
For the fields such as address line 1, can you use the Object name as oppose to the display name and then explicitly call the field.text property since that might get you the value?