Ok, I found the bug:
If I put the second column to "General", the SetColumnValue Function jumps to the ErrorProc Handler, when processing teh second column, so all other columns don't get the value set. The Error Message, which comes from Excel, is "Microsoft Office Excel: Die NumberFormat-Eigenschaft des Range-Objektes kann nicht festgelegt werden." (roughly: "The NumberFormat-Value of the Range-Object could not be set").
Unfortunatelly there wasn't any error message, so I didn't look into the Error Log. The other improvment would be in the setColumnValue to catch the error there, so that when a problems occure, that the rest of the columns are set anyway.
Unfortunately I've no idea, whats wrong with the 'General' Value :-) Setting it to "Standard" it works with my german 2007 excel, but I suspect it won't work with your english excel…