Hi,
I too have been dabling the dark OLE arts recently. You can check to see if the excel object is open, and then if not create a new worksheet.
On the same note, you could just open the specific file instead of the active object as well.
$Obj = Win32::OLE->GetObject('c:\somefile.xls');
However! The article to read would be:
here
Dave -- Saving the world one node at a time