
Originariamente inviata da
oregon
Prova ad aggiungere come ultime righe
GC.Collect()
GC.WaitForPendingFinalizers()
OK Grazie Perfetto per questo semplice caso.
Ora però nello specifico:
codice:
Imports System.Threading
Friend Class frmArrivo : Inherits Form
Dim Aggiorna As Threading.Thread
Private Sub Command2_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command2.Click
Dim Aggiorna As New Threading.Thread(AddressOf AggiornaFile)
Aggiorna.Start()
End Sub
'Aggiungi
Private Sub AggiornaFile()
MessageViewer1.AddMessage(1, "Aggiornamento in corso...")
Dim oExcel As Object
oExcel = CreateObject("Excel.Application")
Dim oBook As Object
oBook = oExcel.Workbooks.Open("...\Gestione materiale.xlsx")
Dim oSheet As Object
oSheet = oBook.Worksheets(4)
Dim i As Object
oSheet.Activate()
ProgressBar1.Value = 0
For i = 3 To 10000
ProgressBar1.Value = ProgressBar1.Value + 1
If Trim(oSheet.Cells(i, 1).value) = "" Then
oSheet.Cells(i, 1).value = TextBox1.Text 'Terra
oSheet.Cells(i, 2).value = Text1.Text 'P/N
oSheet.Cells(i, 3).value = Combo1.Text 'Tipo
oSheet.Cells(i, 4).value = Text2.Text 'S/N
oSheet.Cells(i, 5).value = Text11.Text 'Provenienza
oSheet.Cells(i, 6).value = Text5.Text 'DDT RFI
oSheet.Cells(i, 7).value = CDate(Text4.Text) 'Data DDT RFI
oSheet.Cells(i, 8).value = Combo8.Text 'Esito
oSheet.Cells(i, 9).value = Combo8.Text 'Magazzino Mermec
i = 10001
End If
Next i
oBook.Close(SaveChanges:=True)
oSheet = Nothing
oBook = Nothing
oExcel = Nothing
i = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()
ProgressBar1.Value = ProgressBar1.Maximum
MessageViewer1.AddMessage(1, "Scrittura in file " & Combo1.Text & " di S/N " & Text2.Text & " effettuata con successo")
End Sub
End Class
Resta aperto...isolando il caso FOR / NEXT funziona (Situazione precedente)
Ora vi chiedo cosa devo e come devo distruggere?
Grazie