Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    20

    [VB.NET] Chiusura Excel

    Salve a tutti,

    io ho creato un'applicazione in VBS 2010 e con riferimento EXCEL che apre 2 file .XLSM dove leggo i dati e li inserisco su un 3° file (aperto come modello), quest'ultimo alla fine lo salvo con un nome a mia scelta.
    Il problema è che non c'è verso di chiudere l'applicazione Excel se vado sulla gestione attività continuo a vedere EXCEL tra le applicazioni aperte nonostante abbia utilizzato qualsiasi metodo di chiusura qui sotto riportato:

    Private Sub Chiudi_XLS()
    On Error Resume Next


    'Marshal.ReleaseComObject(oRange)
    xlbook.Close()
    xlbook2.Close()
    xlbook3.Close()
    xlApp.Workbooks.Close()


    xlsheet = Nothing
    xlsheet2 = Nothing
    xlsheet3 = Nothing


    xlApp.Application.Quit()
    xlApp.Quit()


    xlbook = Nothing
    xlbook2 = Nothing
    xlbook3 = Nothing


    Marshal.ReleaseComObject(xlApp)


    Marshal.ReleaseComObject(xlsheet)
    Marshal.ReleaseComObject(xlsheet2)
    Marshal.ReleaseComObject(xlsheet3)


    Marshal.ReleaseComObject(xlbook)
    Marshal.ReleaseComObject(xlbook2)
    Marshal.ReleaseComObject(xlbook3)




    xlApp = Nothing
    End Sub

    Qualcuno ha consigli su come fare?

    Grazie a presto.
    Ultima modifica di cmaxym; 12-07-2016 a 10:33

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi eliminare la On Error Resume Next e controllare se hai errori?


    P.S. Non si parla di VBS 2010, semmai di codice VB.NET
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2015
    Messaggi
    34
    Ciao,circa un mese fa ho creato una rubrica telefonica che esporta i contatti in excel,e ti posso assicurare che è del tutto normale,infatti chiudendo il mio programma,si vedrà dal task manager che Excel si termina automaticamente.
    E' un servizio di Excel che viene avviato automaticamente da Visual Basic quando si esporta o salva,creando un documento xls,xlsx,xlsm.
    Ovviamente Visual Basic per avviare i servizi Office contiene questo codice:
    codice:
    Imports Microsoft.Office.Interop
    che sicuramente c'è l'hai anche tu.
    Poi se vuoi forzare il processo terminandolo,anche se il tuo programma è ancora aperto,si può fare ma non è consigliato farlo,quindi ti consiglierei di restare cosi' come faccio io,che è normale.
    Comunque l'unica cosa che non capisco è perche hai scritto On Error Resume Next,serve solo quando hai scritto male un codice,e non ti fa crashare il programma,è solo per debug.
    Se vuoi ti mando i codici per terminare un processo con VB da come hai chiesto prima.
    Ultima modifica di Paki243; 12-07-2016 a 11:58

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No, non deve terminare Excel. Non è la strada corretta. E non è affatto normale.

    Excel può essere chiuso se il programma VB non ne fa più uso, bisogna solo stare attenti al codice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2015
    Messaggi
    34
    A me funziona correttamente che quando chiudo il programma,si chiude anche il servizio.
    Infatti se apro il file Excel,c'è tutto salvato,anche quando importo nella rubrica.
    Eppure i codici sul mio programma non sono stati elaborati da me,ma li avevo copiati da internet,di cui molte persone usano questo codice e non crea affatto problemi.
    Può darsi che Visual Basic non è proprio programmato a chiudere il servizio appena salvato il file,solo quando viene terminato.
    Premetto che uso Visual Basic 2010 e Office 2010,siccome risale a 6 anni fa,forse ecco perchè non lo fa.
    Tutto può essere.
    Ultima modifica di Paki243; 12-07-2016 a 12:09

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    20
    Si, scusate, l'ON error resume next l'ho inserito per non farmi rompere le palline per errore su :

    Marshal.ReleaseComObject(xlsheet)

    Che toglierò ovviamente...

    Grazie.



    Quote Originariamente inviata da oregon Visualizza il messaggio
    Puoi eliminare la On Error Resume Next e controllare se hai errori?


    P.S. Non si parla di VBS 2010, semmai di codice VB.NET

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    20
    Ehmm non ho capito, non è normale che non chiuda excel o che lo debba chiudere?

    Mi pare di aver capito che non si chiuderà mai fin chè non si chiuderà l'applicativo... Beh, non lo fa... e l'on error l'ho tolto e non mi da errori (Levando anche le righe con Marshal... Ora devo capire se è un errore in fasi di utilizzo di Excel o di Chiusura...

    Grazie 1000

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ricominciamo ...

    1) non è normale che Excel non si chiuda

    2) non è normale che tu metta un On Errore Resume Next solo per non vedere un errore ... l'errore, se c'è, va visto e corretto ... (e può essere la causa del perché non si chiude Excel) ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    537
    per esperienza, excel non si chiude se lo script termina in errore o non venga chiusa l'applicazione (excel)

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    20
    Si, l'on error l'ho tolto... e on mi da nessun error (l'errore era sulle righe riguardante questa parte di codice:

    Marshal.ReleaseComObject(xlsheet)
    Marshal.ReleaseComObject(xlsheet2)
    Marshal.ReleaseComObject(xlsheet3)


    Marshal.ReleaseComObject(xlbook)
    Marshal.ReleaseComObject(xlbook2)
    Marshal.ReleaseComObject(xlbook3)


    Che ho eliminato... se invece il problema lo risolvo utilizzando questa modalità di chiusura Istanza EXCEL... allora vedo di capire perchè di da l'errore.

    Grazie ancora





    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ricominciamo ...

    1) non è normale che Excel non si chiuda

    2) non è normale che tu metta un On Errore Resume Next solo per non vedere un errore ... l'errore, se c'è, va visto e corretto ... (e può essere la causa del perché non si chiude Excel) ...

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.