When using a recordset as a datasource with the ExcelWriter template object, the cells are not populated with data. This typically happens when the recordset is at EOF due to manipulation in the script. When the template object’s .Process() method is called, the data binding occurs.
Before calling .Process(), you should move to the first record in the recordset with this command:
That way, the recordset will be passed properly to the object.