_Excel_Close() Methode schließt Excel Apll. nicht wenn _Excel_Open() ohne Parameter aufgerufen wird.

  • Hallo Profis,
    kann einer sagen warum folgender Code, hier ein Beispiel aus der Hilfe


    die Excel Application beendet wie erwartet, das aber nicht passiert wenn der Aufruf in Zeile 5

    Local $oExcel2 = _Excel_Open()

    zum Starten der Apllication ohne Parameter aufgerufen wird, was laut Hilfe aber erlaubt ist.

    Auszug aus der Hilfe zu AutoIt 3.3.12.0
    "_Excel_OpenConnects to an existing Excel instance or creates a new one
    #include <Excel.au3>
    _Excel_Open ( [$bVisible = True [, $bDisplayAlerts = False [, $bScreenUpdating = True [, $bInteractive = True [, $bForceNew = False]]]]] )
    Parameters

    $bDisplayAlerts [optional] False suppresses all prompts and alert messages while opening a workbook (default = False)
    $bScreenUpdating [optional] False suppresses screen updating to speed up your script (default = True)
    $bInteractive [optional] If False, Excel blocks all keyboard and mouse input by the user (except input to dialog boxes) (default = True)
    $bForceNew [optional] True forces to create a new Excel instance even if there is already a running instance (default = False)


    Return Value"

    m.f.g.
    der itRentner ?(

    • Offizieller Beitrag

    Hallo,

    bei mir läuft es mit und ohne Parameter!

    Läuft evtl. noch eine 2. Instanz die nicht richtig beendet wurde?
    Gib einfach mal die Anzahl der Instanzen nach dem Öffnen aus!

  • Bernd, du hattest recht, da lief noch eine Excel Instanc. Auf die Idee mal in die Process Liste zu sschauen bin ich nicht gekommen. Ich hab nur die Anwendungen kontrolliert. Alte leute halt ;)

    DANKE

    m.f.g.
    der itRentner

  • Wenn Du _Excel_Open ohne Parameter aufrufst, dann hängt sich die UDF an eine bereits laufende Excel Instanz. _Excel_Close beendet diese Instanz nicht, außer Du setzt den Parameter $bForceClose = True.
    Läuft noch keine Excel Instanz, so wird eine neue gestartet und danach mit _Excel_Close (auch ohne $bForceClose = True.) geschlossen.