Guten Morgen meine Freunde vom Pferdefriedhof ![]()
Ich habe mit der Excel Funktion _ExcelReadCell folgendes Problem.
Anbei ein Ausschnitt aus meinem Script
[autoit]_ExcelSheetActivate($var_excel_open, "Erstens")
$var_erste_wiegung = _ExcelReadCell($var_excel_open, 6, 8 )
;~ MsgBox(0,"Ergebnis erste Wiegung",$var_erste_wiegung & " Tonnen und " & @error)
IniWrite($var_logpath & "\" & $var_date_ini, $var_aktuelle_bgs_nr, "OUT_ERSTE_WIEGUNG", $var_erste_wiegung)
Wenn Excel noch nicht geöffnet ist, das wird es geöffnet, "_ExcelReadCell" lies meine Zelle aus, und schreibt den Wert in eine INI Datei.
Soweit alles OK und gut.
Wenn Excel jedoch dann offen ist, und ich das Script nochmals laufen lasse, dann steht im Ergebnis von "_ExcelReadCell" immer eine 0 (Null). Sobald ich Excel schließe und es wieder über das Script öffnen lasse geht es wieder - aber halt nur dieses eine mal.
Da Excel eigentlich ja offen sein sollte - ich es jedoch vorher überprüfe - habe ich damit ein grosses Problem, da ich die Zelle eigentlich sehr oft auslesen sollte.
Wie Ihr in der auskommentierten Messageboxzeile seht, habe ich mir auch schon @error ausgeben lassen.
Beim Ersten "funktionierenden" Durchgang erhalte ich eine 0, beim Zweiten eine 1.
Auszug aus der Hilfe:
Zitat1 - festgelegtes Objekt existiert nicht
Kann mir das bitte mal jemand erklären. Was genau ist hier als "Objekt" gemeint ?
Hier noch der Teil des Scripts, welches Excel öffnet
I
[autoit]f WinExists("Microsoft Excel - Abfall.xlsx") Then
;MsgBox(0, "", "Das Fenster existiert")
WinActivate("Microsoft Excel - Abfall.xlsx", "")
WinSetState("[ACTIVE]", "", @SW_MAXIMIZE)
Else
$var_excel_file = @ScriptDir & "\Abfall.xlsx" ; Diese Datei sollte bereits existieren
$var_excel_open = _ExcelBookOpen($var_excel_file); Excel Datei wird geöffnet
If @error = 1 Then
MsgBox(0, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Fehler!", "Die Datei " & $var_excel_file & " existiert nicht!")
Exit
EndIf
WinActivate("Microsoft Excel - Abfall.xlsx", "")
WinSetState("[ACTIVE]", "", @SW_MAXIMIZE)
EndIf
Das Problem herrscht sowohl unter Win7x64 mit Office2010x32, als auch unter Win7x32 mit Office 2007x32
Freue mich schon auf Eure Antworten
Gruss Hassan