Questione : Come all'uccisione pulita un oggetto di Excel dalla memoria.

Tutti gli abbiamo veduto.  Quel EXCEL.EXE sciocco rimane residente nella memoria qualunque cosa il metodo voi prenda.  Persino ho veduto gli oggetti multipli di EXCEL.EXE comparire nella lista trattata nel responsabile di operazione quando in effetti il mio codice apre soltanto un avvenimento.  Ho fornito un senso uccidere tutto l'Excel dalla memoria.  Spero che questo aiuti la vostra angoscia nel class= " lineNumbers " >
1 del >

: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: sistema codeBody dei >Imports " del prettyprint " " del class= del id= " codeSnippet718371 del >
 " libero " di 
class= > " libero " del
soluzioni >Related class= >excel qRelatedParent " del class= " in memoria " del title= " del href= " /Microsoft/Development/MS_Access/Q_26107862.html di

Risposta : Come all'uccisione pulita un oggetto di Excel dalla memoria.

ReleaseComObject e FinalReleaseComObject non funzionano sempre.  (Se fanno mai).  Ciò è l'unico senso che ho potuto abbastanza consistantly uccidere il ExcelApp in cui sto lavorando.  Ciò non uccide qualsiasi altro già-apre le lime di Excel….il soltanto uno si è aperto dal vostro app a quel tempo perché passate il vostro oggetto di ExcelApp.

Uso “la sezione di Application.DoEvents ()„ appena per dargli una piccola quantità di tempo di chiudermi.  Non potete averli bisogno.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
Dichiarare il movimento di liberazione “user32„ altrimenti detto “PostMessageA„ di PostMessage di funzione (hwnd come Int32, wMsg come Int32, _ di ByVal di ByVal
    wParam di ByVal come lParam di ByVal, di Int32 come Int32) come Int32

Const WM_QUIT = &H12


ExcelWorker secondario riservato

    MyExcel come Microsoft.Office.Interop.Excel.ApplicationClass
    
    '- Insignificante - insignificante insignificante fa tutto l'vostro Excel Stuffz

    MyExcel.Quit

    PostMessage (Excel.Hwnd, WM_QUIT, 0, 0)

    Oscurare la i come Int32
    Per i = 0 - 10000
        Application.DoEvents ()
    Dopo

    MyExcel = niente

Sommergibile dell'estremità
Altre soluzioni  
 
programming4us programming4us