Riprendo questo mio post un po' vecchiotto perchè mi trovo a dover risolvere lo stesso problema, aggirato in passato con un "kill"...chiudere gli Excel.exe attivati dal programma, una volta terminata la lettura/scrittura...questa volta non posso "killarli" perchè i files excel risiedono su un server e chiuderei ogni processo Excel.exe, anche quelli utilizzati da altri utenti in rete che non interagiscono con il software che sto realizzando...vi allego un esempio di codice che ricalca la linea che sto seguendo:

codice:
    Public Class Form2

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim XLS_C3 As New Microsoft.Office.Interop.Excel.Application
    

        XLS_C3.Workbooks.Open("C:\Cartel3")
        XLS_C3.Worksheets(1).Select()


        XLS_C3.Cells(1, 20).value = "Ciao"

        XLS_C3.ActiveWorkbook.Save()
        XLS_C3.Workbooks.Close()
        XLS_C3.Quit()
        NAR(XLS_C3)
       



    End Sub

    Private Sub NAR(ByVal o As Object)

        Try

            System.Runtime.InteropServices.Marshal.ReleaseComObject(o)

        Catch ex As Exception

        Finally

            o = Nothing

        End Try

    End Sub

End Class