Ich bin nicht ganz sattelfest, was COM betrifft. Meines Wissens wird die COM Schnittstelle von Windows zur Verfügung gestellt. Deshalb ist es auch ein Unterschied, ob z.B. Excel schon läuft oder nicht. Ich habe vor langer Zeit diesen Code gefunden und verwende ihn immer in meine Skripts.
Code: Select all
try XL := ComObjActive("Excel.Application") ;handle to running application
Catch {
MsgBox % "no existing Excl object: Need to create one"
XL := ComObjCreate("Excel.Application")
Dann kann man jede Excel Datei öffnen.
Code: Select all
XL.Workbooks.Open("c:\temp\excel.xlsx")
Und beim Beenden wieder schließen.
Ich würde an deiner Stelle, nachdem ich alle Excel Prozesse geschlossen habe, diese mit dem o.g. Code wieder öffnen.
Wenn deine Server Verbindung immer wieder abkackt, dann könntest du doch das Excel lokal bearbeiten und dann am Ende auf den Server kopieren. Damit könntest du das Problem vielleicht umgehen.
Ich bin nicht ganz sattelfest, was COM betrifft. Meines Wissens wird die COM Schnittstelle von Windows zur Verfügung gestellt. Deshalb ist es auch ein Unterschied, ob z.B. Excel schon läuft oder nicht. Ich habe vor langer Zeit diesen Code gefunden und verwende ihn immer in meine Skripts.
[code]try XL := ComObjActive("Excel.Application") ;handle to running application
Catch {
MsgBox % "no existing Excl object: Need to create one"
XL := ComObjCreate("Excel.Application")[/code]
Dann kann man jede Excel Datei öffnen.
[code]XL.Workbooks.Open("c:\temp\excel.xlsx")[/code]
Und beim Beenden wieder schließen.
[code]XL.Workbooks.Close()
XL.Quit
XL=[/code]
Ich würde an deiner Stelle, nachdem ich alle Excel Prozesse geschlossen habe, diese mit dem o.g. Code wieder öffnen.
Wenn deine Server Verbindung immer wieder abkackt, dann könntest du doch das Excel lokal bearbeiten und dann am Ende auf den Server kopieren. Damit könntest du das Problem vielleicht umgehen.