Frage zu _ExcelReadCell -> Variable wird nicht befüllt - Probleme mit Excel Objekt?

  • Hallo zusammen,

    Ich habe vor ein paar Wochen AutoIT entdeckt und bin seitdem am "rumspielen" mit dem Programm.
    Ich habe schon viel mitgelesen, aber bei meiner jetzigen Problematik konnten mir weder die Forensuche noch google helfen.

    Folgendes Szenario:
    Ich arbeite mit 2 Bildschirmen. Auf dem rechten habe ich eine Excel Tabelle in dem Format
    A B C
    Land PLZ Ort

    AutoIT soll in das offene Excel springen, in der ersten Zeile den Inhalt aus Spalte A in eine Variable speichern, den aus Spalte B in eine zweite und C in eine dritte.
    Anschließend soll in ein anderes Fenster gesprungen werden und die Daten aus den drei Variablen in drei verschiedenen Feldern eingegeben werden.
    Dann der Rücksprung nach Excel und mit der nächsten Zeile das gleiche. (habe ich mit einer for-schleife gelöst)

    Das klappt auch alles soweit - bis auf oben beschriebene Methode. In der zweiten Anwendung wird immer nur eine 0 in die Felder eingetragen.

    Der Aufbau ist ja folgender:
    _ExcelReadCell($oExcel, $Row, $Column)

    Ich habe Probleme damit, das aktive Excel File in die Variable $oExcel zu bekommen. Ich habe hier ein Stück Code, aber so funktioniert es nicht:

    Code
    WinActivate ("Microsoft Excel")
    $ioExcel = WinActive
    $sLKZ = _ExcelReadCell($ioExcel, $i, 2)
    Sleep (200)
    $sPLZ = _ExcelReadCell($ioExcel, $i, 3)
    Sleep (200)
    $sOrt = _ExcelReadCell($ioExcel, $i, 4)

    Auf der Hilfeseite
    http://translation.autoit.de/onlinehilfe/li…celReadCell.htm
    steht
    "Ein Excel Objekt welches durch einen vorherigen Aufruf von _ExcelBookOpen() oder _ExcelBookNew() geöffnet wurde"
    Aber mein Objekt ist ja zu diesem Zeitpunkt schon aktiv?

    Wie kann ich das lösen?

    Vielen Dank schonmal.

  • Du kannst $ioExcel so nicht verwenden.
    Wenn Du AutoIt 3.3.8.1 verwenden möchtest um auf eine beretis offene Excel Datei zuzugreifen musst Du _ExcelBookAttach veerwenden.t

  • Schonmal Danke für deine Hilfe.

    Für
    _ExcelBookAttach
    finde ich nicht wirklich etwas im Web. Ich benutze AutoIT 3.3.10.2 - falls das jemandem weiterhilft.


    Ich weite das Problem mal etwas aus;
    Gibt es keine andere Möglichkeit meine Daten aus der Excel Datei in Variablen zu schreiben als die Felder zu markieren, Kopieren (Strg + V) und mit der Funktion ClipGet() in die Variablen zu schreiben?
    Das ist sehr schade, weil es über den Zwischenspeicher auch langsamer ist als ein direkter Zugriff.

    Gibt es Möglichkeiten, die ich vielleicht übersehen habe?


    Grüße
    Alex

  • Du hast zuerst von _ExcelReadCell gesprochen. Und das ist AutoIt 3.3.8.1.
    Mit AutoIt 3.3.10.2 musst Du _Excel_BookAttach und _Excel_RangeRead verwenden. Die Beispielskripte zeigen wie's geht.