![]() |
Excel öffnen - EOleSysError
Hallo
Ich öffne Excel mit Late Binding wie folgt:
Delphi-Quellcode:
Das Problem ist, dass eine Fehlermeldung erscheint, wenn schon eine Arbeitsmappe geöffnet ist und sich der User zugleich in einem Arbeitsblatt im Editiermodus befindet (nach Doppeklick auf Zelle).
try
XlsApp := GetActiveOleObject('Excel.Application'); except XlsApp := CreateOleObject('Excel.Application'); end; Wie kann ich das umgehen? Zitat:
|
AW: Excel öffnen - EOleSysError
Du meinst
Delphi-Quellcode:
und du landest dann im
XlsApp := GetActiveOleObject('Excel.Application');
Delphi-Quellcode:
Zweig, oder?
XlsApp := CreateOleObject('Excel.Application');
Was solls? Diese Exception sieht du doch nur Während des Debuggens. Und wieso willst du überhaupt die laufende instanz abgreifen wenn dir auch ein neue Instanz genügt? |
AW: Excel öffnen - EOleSysError
Habe nun herausgefunden, dass die Stelle, wo der Fehler auftritt, nach dem GetActiveOleObject ist, sobald auf das XLApp zugegriffen wird.
Ursache: Während man sich im Bearbeitungsmodus befindet, ist Excel für den programmatischen Zugriff gesperrt. Und wieso willst du überhaupt die laufende instanz abgreifen wenn dir auch ein neue Instanz genügt?
Delphi-Quellcode:
try
XLApp := GetActiveOleObject('Excel.Application'); except XLApp := CreateOleObject('Excel.Application'); XLApp.Visible := True; end; XLApp.Workbooks.Open(sXlsFile); <--- Fehler hier: Zitat:
Habe schon einen anderen Lösungsansatz, werde mich später nochmals melden. |
AW: Excel öffnen - EOleSysError
Zitat:
|
AW: Excel öffnen - EOleSysError
Die Arbeitsmappe möchte ich wirklich in der gleichen Instanz geöffnet haben,
denn es soll möglich sein, zwischen den Arbeitsmappen mit Strg+Tab zu wechseln, Formeln zwischen Arbeitsmappen kopieren zu können, Speicher zu reduzieren, VBA Makros aller geöffneten Arbeitsmappen im VBA Editor einsehen zu können usw... |
AW: Excel öffnen - EOleSysError
Meine Lösung, damit nicht immer eine neue Instanz geöffnet wird (irgendwie klar)
anstatt so
Delphi-Quellcode:
so:
ShellExecute(0, 'open', 'excel.exe', PChar(sXlsFile), nil, SW_SHOW);
Delphi-Quellcode:
ShellExecute(0, 'open', PChar(sXlsFile), nil, nil, SW_SHOW);
|
AW: Excel öffnen - EOleSysError
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz