Forums Neueste Beiträge
 

VB2005 EXCEL

04/09/2007 - 12:36 von Anton Hengg | Report spam
Hallo Zusammen,

ich haben eine kleine Anwendung mit der ich Daten nach EXECL schreibe.

Wenn ich Late Binding verwende bleibt EXCEL immer Taskmanager hàngen.
Wenn ich Early Binding verwende ist mein Programm durch die Verweise ja auf
die richtige EXCEL-Version angewiesen und das möchte ich nicht.
Wie macht ihr das?

'Dim oExcel As New Microsoft.Office.Interop.Excel.Application
'Dim oBook As Microsoft.Office.Interop.Excel.Workbook
'Dim oSheet As Microsoft.Office.Interop.Excel.Worksheet

Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object

On Error Resume Next
oExcel = GetObject("Excel.Application")
If Err.Number <> 0 Then
oExcel = CreateObject("Excel.Application")
End If

...

oExcel.ActiveWorkbook.Close()
oExcel.Workbooks.Close()
oExcel.Quit()
oSheet = Nothing
oBook = Nothing
oExcel = Nothing

Gruß
Anton
 

Lesen sie die antworten

#1 Peter Fleischer
04/09/2007 - 12:46 | Warnen spam
Anton Hengg wrote:

ich haben eine kleine Anwendung mit der ich Daten nach EXECL schreibe.

Wenn ich Late Binding verwende bleibt EXCEL immer Taskmanager hàngen.
Wenn ich Early Binding verwende ist mein Programm durch die Verweise
ja auf die richtige EXCEL-Version angewiesen und das möchte ich nicht.
Wie macht ihr das?

'Dim oExcel As New Microsoft.Office.Interop.Excel.Application
'Dim oBook As Microsoft.Office.Interop.Excel.Workbook
'Dim oSheet As Microsoft.Office.Interop.Excel.Worksheet

Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object

On Error Resume Next
oExcel = GetObject("Excel.Application")
If Err.Number <> 0 Then
oExcel = CreateObject("Excel.Application")
End If

...

oExcel.ActiveWorkbook.Close()



Hi Anton,
ist im Algorithmus garantiert, dass es keinen Verweis mehr auf das oder ein
anderes Arbeitsblatt gibt?

Die Nutzung von Select und Active... sollte möglichst vermieden werden, da
diese Methoden über die aktuelle Oberflàche zugreifen. Besser ist es, mit
Range-Objekten zu arbeiten und auch die Inhalte aller Verweisvariablen zu
löschen. Dann klappt auch das Schließen der Excel-Instanz.


Viele Grüße

Peter

Ähnliche fragen