Excel Tabelle Namen und Zahlen auslesen, in variable speichern

  • Mahlzeit!
    Ich möchte aus einer vorhandenen Excel Tabelle
    -Auf Tab1-> Spalte A(Erster eintrag)
    -Auf Tab2-> Spalte B(Erster eintrag)
    -Auf Tab3-> Spalte C(Erster eintrag)
    -Auf Tab4-> Spalte D(Erster eintrag)
    -Auf Tab5-> Spalte E(Erster eintrag)
    -Auf Tab6-> Spalte F(Erster eintrag)
    auslesen und in einer Variable speichern... mein Code ist folgender:

    Spoiler anzeigen

    Ich habe versucht eine einzelne zeile auszulesen und ich habe versucht einen Bereich in einer Spalte auszulesen, jedoch erhalte ich beim druck auf "Read"(Button) keinen wert, ausser den vordefinierten von "0"
    Kann mir wer helfen?

  • Du liest die Werte zwar aus und weist sie einer Variablen zu. Um die Werte anzuzeigen mußt du sie mit GuiCtrlSetData auch dem zugehörigen Label zuweisen:

    Code
    Case $msg = $r1
    			Local $sp1 = _Excel_RangeRead($xlspart, 2, "C6", 2)
    			GUICtrlSetData($idSp1,$sp1)

    dafür muß natürlich das Label auch über eine Varibale ansprechbar sein:

    Code
    $idSp1=GUICtrlCreateLabel($sp1, 100, 100)

    auf den Umweg lokale Variable kannst du auch verzichten:

    Code
    GUICtrlSetData($idSp1,_Excel_RangeRead($xlspart, 2, "C6", 2))

  • dafür muß natürlich das Label auch über eine Varibale ansprechbar sein:

    Code
    $idSp1=GUICtrlCreateLabel($sp1, 100, 100)

    auf den Umweg lokale Variable kannst du auch verzichten:

    Code
    GUICtrlSetData($idSp1,_Excel_RangeRead($xlspart, 2, "C6", 2))

    Danke das hat soweit geklappt, bin ein wenig aus der übung und kam da nicht drauf... komisch jedoch ist, dass er nur "0" ausliest...
    Die funktion nutze ich:

    Case $msg = $r4
    GUICtrlSetData($idSp1,_Excel_RangeRead($oExcel, $test,"A2:A8", 1))
    zum verständnis für mich:
    $oExcel ist das geöffnete Excel
    $test ist das dokument
    1 ist für value - müsste richtig sein :o

  • Kann ich ohne Exceldatei nicht nachvollziehen. Dein Objekt für RangeRead ist falsch, es muß ein WorkBook-Objekt sein und nicht ein Dateinamen.

    • Existiert eine 2. Tabelle?
    • Willst du eine Formel auslesen?

    Dies

    Code
    GUICtrlSetData($idSp1,_Excel_RangeRead($test, 1, "C6", 1))

    funktioniert bei mir in der 1. Tabelle von "C:\Program Files\AutoIt3\Examples\Helpfile\Extras\_Excel1.xls".
    Übrigens sind deine Labels etwas kurz, 600 wird schon nicht mehr vollständig dargestellt.

    2 Mal editiert, zuletzt von autoBert (25. März 2016 um 17:17)

  • Habe im engl. Forum zu Deiner Frage bereis ein lauffähiges Beispiel gepostet.

  • Ja ich habe es gesehen, danke dafür!
    Edit:
    Ich habe deinen code aus dem englischen Forum übernommen

    Spoiler anzeigen

    Es gibt einen fehler beim öffnen von Excel...
    mal eine doofe frage:
    geht das ganze auch mit openoffice? wenn nein, muss excel installiert sein?

    Einmal editiert, zuletzt von drkcld (29. März 2016 um 14:05)

  • Zur doofen Frage ;)
    Nein, das ist eine UDF nur für MS Excel. Aber für Open/LibreOffice Calc gibt es im engl. Forum auch eine UDF dazu. Hab's aber noch nie probiert.
    Ja, Excel muss installiert sein.

  • Für OpenOffice gibt sogar eine Funktionssammlung in unserem Forum:
    Funktionssammlung OpenOffice Calc