Excel in Visual basic express

di il
7 risposte

Excel in Visual basic express

Ciao a tutti,
in questi giorni sto provando a modificare un file excel con visual basic express. Non so se questa è la sezione corretta. Spero di si.
Riporto sotto il codice:

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet

xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Open("C:\TEMP\text1.xlsx")
xlWorkSheet = xlWorkBook.Worksheets("foglio1")
'display the cells value B2
MsgBox(xlWorkSheet.Cells(2, 2).value)
'edit the cell with new value
xlWorkSheet.Cells(2, 2) = "Prova di scrittura"
xlWorkBook.Close()
xlApp.Quit()

releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)

End Sub

Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub

Stranamente terminata la procedura mi chiede di salvare il file su una copia. Se provo a salvare il file sullo stesso, giustamente, non lo esegue in quanto occupato.
Come faccio a salvare le modifiche sullo stesso file excel?

Grazie a tutti.

7 Risposte

  • Re: Excel in Visual basic express

    Nel tuo codice non vedo alcuna istruzione di salvataggio, solo close.
  • Re: Excel in Visual basic express

    KronS ha scritto:


    Stranamente terminata la procedura mi chiede di salvare il file su una copia. Se provo a salvare il file sullo stesso, giustamente, non lo esegue in quanto occupato.
    Come faccio a salvare le modifiche sullo stesso file excel?
    Ho provato il tuo codice su VS2012, ho Excel 2007.
    Ho creato un foglio excel compilato in B2, e con Foglio1
    Il programma legge la cella, la modifica e alla chiusura appare: "salvo le modifiche?", clicco "Si", lo stesso file viene sovrascritto senza problemi.

    Controlla su gestione attività, se hai dei processi Excel, chiudili tutti, chiudi anche l'Excel che hai usato per creare il primo file.
  • Re: Excel in Visual basic express

    Io ho visual basic express 2010 ed excel 10. Ho riprovato ma mi propone subito di salvare con una copia del file (copy of text1.xlsx). Se gli inserisco il nome dello stesso file iniziale mi chiede se sono sicuro di riscrivere il file di partenza e se rispondo di si non lo salva e non chiude la finestra di salvataggio.
    Il fatto che a Rubik funzioni indica che almeno il sorgente non è errato.
    Ho provato anche inserendo la riga di codice prima della chiusura:

    xlWorkBook.Save()

    ma il risultato è lo stesso.
    Possibile sia qualche setup di excel?
    Grazie.
  • Re: Excel in Visual basic express

    Rubik ha scritto:


    Controlla su gestione attività, se hai dei processi Excel, chiudili tutti, chiudi anche l'Excel che hai usato per creare il primo file.
    L'hai fatto ? quando capitano degli errori rimangono in memoria sessioni di excel non chiuse
  • Re: Excel in Visual basic express

    patel ha scritto:


    Rubik ha scritto:


    Controlla su gestione attività, se hai dei processi Excel, chiudili tutti, chiudi anche l'Excel che hai usato per creare il primo file.
    L'hai fatto ? quando capitano degli errori rimangono in memoria sessioni di excel non chiuse
    Si. Ho chiuso tutte le attività di excel. Ho comunque verificato e dopo il salvataggio su un file con nome diverso il file originale lo posso aprire
    solo in lettura.
  • Re: Excel in Visual basic express

    KronS ha scritto:


    Possibile sia qualche setup di excel?
    Grazie.
    Non ti so rispondere ma se fosse, apri un file con Excel, lo modifichi e poi lo salvi con lo stesso nome, dovresti avere lo stesso problema.

    KronS ha scritto:


    Si. Ho chiuso tutte le attività di excel. Ho comunque verificato e dopo il salvataggio su un file con nome diverso il file originale lo posso aprire
    solo in lettura.
    Il fatto che puoi aprire il file originale in sola lettura significa che è in uso, ricontrolla che non ci siano uno o più Excel aperti in gestione attività.
    Attiva la visualizzazione dei file nascosti e controlla se in insieme a:
    text1.xlsx
    c'è anche:
    ~$text1.xlsx
    Il file nascosto viene creato per avvertire Excel che un altro utente sta modificando lo stesso file, quando l'altro utente chiude e salva, Excel cancella il file nascosto e un'altro utente lo potrà aprire in lettura/scrittura.
    Chidi tutti gli Excel e cancella il file nascosto se c'è.
  • Re: Excel in Visual basic express

    Rubik ha scritto:


    Il fatto che puoi aprire il file originale in sola lettura significa che è in uso, ricontrolla che non ci siano uno o più Excel aperti in gestione attività.
    Attiva la visualizzazione dei file nascosti e controlla se in insieme a:
    text1.xlsx
    c'è anche:
    ~$text1.xlsx
    Il file nascosto viene creato per avvertire Excel che un altro utente sta modificando lo stesso file, quando l'altro utente chiude e salva, Excel cancella il file nascosto e un'altro utente lo potrà aprire in lettura/scrittura.
    Chidi tutti gli Excel e cancella il file nascosto se c'è.
    Grande!!! Ho ricontrollato ed effettivamente non c'era una applicazione di excel attiva ma un processo. Ho quindi terminato il processo ed ho riprovato con successo.

    GRAZIE.
Devi accedere o registrarti per scrivere nel forum
7 risposte