PDA

Vollständige Version anzeigen : Excel XP schliessen per VB.NET


Gast
24.09.2003, 09:48
Habe ein Programm in VB.NET2003 entwickelt das auf Excel und Word XP zugreift. Bei Word gibt es keine probleme beim späteren schliessen, jedoch Excel bleibt immer als Prozess bis ich das Programm komplett schliesse. Das ist aber nicht sinn der sache da ich solange keine Excel Datei öffnen kann.

Hier mein Code:

If IsNothing(excelapp) Then
excelapp = CreateObject("excel.application")
End If
excelapp.Visible = False
wb = excelapp.Workbooks.Open(bptreg.template & "Test.xls")
ws = CType(wb.Worksheets("Seite1"), Excel.Worksheet)
ws.Select()
ws.Application.Visible = False

... die Befüllung der Excel Datei ...

ws = Nothing
wb = Nothing
CType(excelapp, Excel._Application).Quit()
excelapp = Nothing

kann mir einer Helfen??

MFG MZottel

DbSam2003
24.09.2003, 11:32
Hallo Gast,

hast Du es schonmal mit ws.close und wb.close versucht?
(Bevor Du beide auf Nothing setzt)

Gruß Carsten

Gast
24.09.2003, 11:46
Also ws.close gibt es nicht und mit wb.close hatte ich es auch schon versucht. das komische ist ja das der selbe code bei Word genau das bewirkt was ich gern hätte und zwar nach dem speichern beendet zerstört er auch das objekt nur bei excel nicht.

sehe gerade das ich da noch was vergessen hatte, das kommt noch nach der befüllung

Try
MkDir(Me.Directory)
Catch
End Try

For i = 1 To 100
If Not System.IO.File.Exists(Me.setDateiNameExcel & i & ".xls") Then
Exit For
End If
Next i
wb.SaveAs(Me.setDateiNameExcel & i & ".xls")

Serge
24.09.2003, 13:07
Wenn du eine Lösung hast wie man Daten nach Excel aus VB.net exportiert dann bitte her damit.

Gast
24.09.2003, 13:24
Willst Du einzelne Felder befüllen dann so:

Public ws As Excel.Worksheet

ws.Application.Range("name").FormulaR1C1Local = "Hallo Welt!"

ich habe die Felder mit Namen versehen, so das man bei Änderungen nicht immer im Code ändern muss