Logo UGIdotNET

Discussione 'Interop ed excel... non chiude excel'

# Pubblicato il 20 nov 2003 4.59 - Rispondi
Claudio Benghi
Interop ed excel... non chiude excel
Ho un problema con l'automazione di Excel da VbNet:

Rimane un task Excel.exe attivo dopo l'esecuzione del mio programma...
ho letto un articolo in KB che prevede il problema e posta un workaround... ma non funziona:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;317109

Il codice incriminato è molto semplice... apre un file excel... copia uno sheet
e lo chiude...
se non copio lo sheet il task di excel viene chiuso, ma se eseguo la funzione
oSheet.Copy(oSheet, )
non lo chiude più!

mi sapete aiutare? Il codice della mia routine è il seguente:

Dim oExcel As Object
Dim oBook As Object
Dim oWbs As Object
Dim oWb As Object
Dim oSheets As Object
Dim oSheet As Object

oExcel = CreateObject("Excel.Application")
oExcel.visible = True
System.Threading.Thread.CurrentThread.Sleep(3000)
oWbs = oExcel.Workbooks
oWb = oWbs.Open("C:\Bonghi\Ddm\LagDuf\JSR\jsr_dot_net\LD_JSR\Reports\store\1.xls")
oSheets = oWb.sheets
oSheet = oSheets(1)
oSheet.Copy(oSheet, )
oWb.Save()
NAR(oSheet)
NAR(oSheets)
NAR(oWb)
NAR(oWbs)
oExcel.quit()
NAR(oExcel)
' Force garbage collection.
System.Threading.Thread.CurrentThread.Sleep(3000)
GC.Collect()

La sub NAR è presa dall'articolo di KB

Ora mi arrendo... buonanotte.
Claudio
# Pubblicato il 28 nov 2003 18.16 - Rispondi
Felice Pollano
Re: Interop ed excel... non chiude excel
Ciao,
Secondo me c'è qualcosa di sospetto in questo punto del tuo codice...

oSheet = oSheets(1)
oSheet.Copy(oSheet, )

non vorrei che il conteggio di riferimento crescesse di uno di troppo. Hai già provato a chiamare due volte NAR su oSheet ?

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185