Torna al Thread
Public Class claInvitiRevisioni
Public Event Terminato()
Public parChiamante As frmInvitiRevisioni
Dim XlaDati As Object ' Excel.Application <---- Non la dichiaro come Excel.Application, perché crea problemi con .SaveAs con Office2000. Dichiarandola come Object il problmea non si presenta. Comunque ho provato a dichiararla come Excel.Application, ma il problema del processo rimane.
Public Sub Chiusura()
Try
parChiamante.btnEstrapola.Text = parChiamante.cnsEstrapola
If Not IsNothing(XlaDati) Then
XlaDati.Quit()
XlaDati = Nothing
End If
Catch exc As Exception
meErrori.RegistrazioneErrore(Err, exc, True)
End Try
End Sub
Sub Elaborazione()
Dim XlwbDatiDestinazione As Object ' Excel.Workbook
Dim XlshDatiDestinazione As Object ' Excel.Worksheet
Dim strRecord(0, 0) As String <------ Dati che verranno copiati nel foglio Excel. Subisce un redim durante l'esecuzione
Try
' Crea l'oggetto applicazione Excel
XlaDati = CreateObject("Excel.Application")
' Genera il documento Excel di destinazione
XlwbDatiDestinazione = XlaDati.Workbooks.Add
' Crea ed imposta i fogli di destinazione
For intContatore = 1 To XlwbDatiDestinazione.Sheets.Count <---- Inizialmente rinominavo 3 fogli, perciò ho lasciato invariato questo ciclo nel caso mi serva rinominare ancora più di un foglio
XlshDatiDestinazione = XlwbDatiDestinazione.Worksheets(intContatore)
Select Case intContatore
Case 1
XlshDatiDestinazione.name = "ELENCO"
End Select
Next
XlshDatiDestinazione = XlwbDatiDestinazione.Worksheets("ELENCO")
(...Istruzioni che popolano la matrice strRecord...)
XlshDatiDestinazione.range("A1:H" & lngRiga + 1).formulalocal = strRecord
XlshDatiDestinazione.range("A1:H1").font.bold = True
XlshDatiDestinazione.Columns("A:H").NumberFormat = "@"
XlshDatiDestinazione.Columns("A:H").AutoFit()
mdlMain.ExcelBordi(XlshDatiDestinazione, Excel.XlBorderWeight.xlThin, "A1", "H" & lngRiga + 1, True, True, True, True, True, True) <---- Procedura che imposta i bordi nell'area A1 H[lngriga]. I vari True e False fanno riferimento ai bordi (sinistro, destro...)
mdlMain.ExcelBordi(XlshDatiDestinazione, Excel.XlBorderWeight.xlMedium, "A1", "H1", True, True, True, True)
mdlMain.ExcelBordi(XlshDatiDestinazione, Excel.XlBorderWeight.xlMedium, "A1", "H" & lngRiga + 1, True, True, True, True)
' Se il file di destinazione esiste, lo cancella
If System.IO.File.Exists(parChiamante.txtFileDestinazione.Text) Then
System.IO.File.Delete(parChiamante.txtFileDestinazione.Text)
End If
' Salva il file
XlwbDatiDestinazione.SaveAs(parChiamante.txtFileDestinazione.Text)
Catch exc As Exception
meErrori.RegistrazioneErrore(Err, exc, True)
Finally
XlshDatiDestinazione = Nothing
XlwbDatiDestinazione = Nothing
Me.Chiusura()
RaiseEvent Terminato()
End Try
End Sub
End Class