A useful tool is to check each error output for errors. This can generally tell you if you've closed references out of order.
Note that any function which returns a reference opens a new reference (Ranges need to be closed too).
Are you sure no other component is causing the problem. What happend when you simply open and close excel? Then add one step at a time to see where the problem is.
I can't look at your code, so my reply has to remain kind of fuzzy.
Sorry
Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)