Vb ed excel

di il
3 risposte

Vb ed excel

Ho una applicazione VB che fa una chiamata ad excel, crea nuovi sheets, fa calcoli e formattazioni e fin quì tutto bene...il problema è in chiusura; sebbene io utilizzi la riga Set xlApp = Nothing con xlapp = istanza di excel.application , nel task manager un processo excel rimane attivo fino a quandom non chiudo l'applicazione VB....che mi può aiutare a risolvere il problema?

3 Risposte

  • Re: Vb ed excel

    Credo che non ci sia alcuna soluzione. Gli oggetti della microsoft rimangono volentieri in memoria, se non si eliminano molto accuratamente tutti gli oggetti istanziati.

    L'unico modo che conosco è creare l'oggetto con Late Binding, CreateObject, ma a questo punto non è più disponibile il comodissimo intellisense, e neanche gli eventi. Quando si rilascia un oggetto creato con CreateObject, viene rilasciato completamente (se non c'è un bug in Excel).

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Vb ed excel

    Ciao,
    Spesso e volentieri il problema è il seguente:

    C'è una enorme differenza fra scrivere:

    <b>Dim xlApp as New Excel.Application</b>

    e:

    <b>Dim xlApp as Execl.Application</b>
    e fare poi, nel codice una:
    <b>Set xlApp = New Excel.Application</b>

    Nel primo caso l'oggetto rimane in memoria anche se lo setti a nothing, nel secondo caso no...

    Facci sapere
    Ciaociao

    Venite a visitarci qui: http://spazioinwind.libero.it/bottomapsoftware
  • Re: Vb ed excel

    Innanzitutto grazie a tutti per le risposte; il problema di Excel l'ho in parte risolto rilasciando anche tutti gli oggetti tipo sheet, range ed altro....almeno così, anche se la sessione continua a rimanere attiva, almeno posso consentire all'utente più chiamate consecutive senza errori... inoltre volevo porre un'altra questione che mi ha lasciata piuttosto basita: su alcuni postazioni dove abbiamo installato l'applicazione la chiamata
    Set xlBook = xlApp.Workbooks.add
    segnalava un errore 9 di runtime (Subscript out of range) a parità di sistema operativo e versione di Office
    e la abbiamo dovuta sistituire con
    Set xlBook = xlApp.Workbooks.Open(.....)
    perchè mai? pazzie di Excel oppure c'è una spiegazione?
Devi accedere o registrarti per scrivere nel forum
3 risposte