Jag kopierar ett ADODB.Recordset till Excel med följande kod: Titta på Pelles kod, om jag inte minns fel är det under tips och tricks. Kollade in den, det är samma lösning som jag har testat, men den tar alldeles för lång tid att köra med stora datamängder. Ett sätt att andra talformatet i en cell i Excel är att använda DataFormat på en Rang (har jag för mig). Om du får fram ett worksheet (som jag kallar wsData här) så tror jag att detta funkar: Löste eländet, det var datatypen på fälten i recordsetet som spökade. Hade konverterat alla fält till varchar av en annan anledning..Kopiera recordset till Excel
xlWs.Cells(2, 1).CopyFromRecordset rsData
där xlWs är ett worksheet. Detta går snabbt, men problemet är att formateringen av datat blir kass. Celler i excel-bladet som får numeriskt data med decimaltal blir till text. Om jag i efterhand försöker formatera dessa celler går det inte, excel verkar ha bestämt sig för att dessa celler innehåller text och omformateringen misslyckas.
Finns någon annan variant, utom att loopa igenom hela recordsetet och fylla cell för cell? Har testat detta och det är alldeles för långsamt med 50000 poster.Sv: Kopiera recordset till Excel
Kan kanske vara under filarean.
Hans kod fungerar finfint för mig i alla fall.
//EmmaSv: Kopiera recordset till Excel
Sv: Kopiera recordset till Excel
wsData.Columns("C").DataFormat = "0.0"
Kika lite på DataFormat så kommer du nog hitta lösningen.
/Niklas JanssonSv: Kopiera recordset till Excel