Salü miteinander
Ich hab hier ein völlig schräges Problem, und ich DREH DURCH!
Folgendes (abgespecktes) Script:
Spoiler anzeigen
#include <GuiConstantsEx.au3>
#include <Excel.au3>
#include <Array.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#include <WinAPI.au3>
#include <File.au3>
#include <Inet.au3>
InitializeMoneygramExcel()
; ------- Das ist der Teil, der mich zum heulen bringt weil excel prozess nicht schliesst ------------------------
Local $oExcel = _ExcelBookOpen(@scriptdir&"\MONEYGRAM MASTERLISTE.xlsx", @SW_HIDE)
_ExcelBookClose($oExcel)
;excel sollte verschwunden sein, tut es aber nicht.
; ---------------------------- Teil Ende, der mich zum heulen bringt ----------------------
; --------------------------- hier funktionierts , excel prozess geht auf und wieder zu ---------------------------------
Func InitializeMoneygramExcel()
Local $oExcel = _ExcelBookOpen(@scriptdir&"\MONEYGRAM MASTERLISTE.xlsx", @SW_HIDE)
Local $i=1
Local $sCellValue="xxx"
Global $CountMoneygramLines=0
ProgressOn("Records einlesen","Records")
while NOT($sCellValue=="")
ProgressSet(Round($CountMoneygramLines/10, -1) , $CountMoneygramLines& " Records")
$sCellValue = _ExcelReadCell($oExcel, $i, 1)
$CountMoneygramLines=$CountMoneygramLines+1
$i=$i+1
WEnd
$CountMoneygramLines=$CountMoneygramLines-1
Global $aVST_List = _ExcelReadArray($oExcel, 1, 1, $CountMoneygramLines, 1) ;Direction is Vertical
ProgressOff()
_ExcelBookClose($oExcel)
EndFunc
Nun, ich lese ja erst die Anzahl Zeilen im Programm. Dazu öffne ich das Excel Sheet, lese, schreibe in den Array, schliesse via Excel handler $oExcel. <- funktioniert
Dann, an einer anderen Stelle des Programms möchte ich das Excel wieder öffnen (um eine Zeile zu lesen), um es danach wieder zu schliessen. Und das funktioniert nur an genau dieser Stelle des 7000 schweren programms nicht. Ich hab via Taskmanager die Instanzen überprüft. Es ist genau keine drin wenn ich an jene Stelle komme... der Fehler MUSS hier drin sein, aber ich verstehe nicht was daran falsch sein soll.
Kann mir hier jemand weiterhelfen oder eine Erlärung dafür liefern?
Ich bitte ganz dringend um Rückmeldung.