Fehler Meldung: Array variable has incorrect number of subscripts or subscript dimension range exceeded

  • Hi leute,
    ich wollte mein Script von bis 112 möglichen Schleifen bis 224 mögliche Schleifen erweitern.

    Jch bekomme aber jetzt folgende Fehlermeldung, nach der Erweiterung: Array variable has incorrect number of subscripts or subscript dimension range exceeded.
    Ich habe nicht die besten AutoiT Kentnisse, sogar eher ziemlich schlechte. ich habe nun auf verschiendenen Seiten gelesen, das ich mein Array erweitern muss... Nur in meinem Script gibt es keinen Bereich wo ich es erweitern kann...
    Weis jemand vielleicht wie ich diese Fehlermeldung beseitigen kann?
    Kann es sein das man eine Excel Range nur bis iCount= 114 betreiben kann und mehr nicht?

    Ich danke euch im vorraus für eure Antworten.

    Gruß Bernd

    Einmal editiert, zuletzt von Bernd Albrecht (14. Juli 2021 um 23:51)

  • Ich habe nicht die besten AutoiT Kentnisse, sogar eher ziemlich schlechte. ich habe nun auf verschiendenen Seiten gelesen, das ich mein Array erweitern muss... Nur in meinem Script gibt es keinen Bereich wo ich es erweitern kann...

    Könntest Du Dir bitte (endlich) mal angewöhnen, die betreffenden Skripte als Quellcode zu posten.

    Nur sehr wenige Leute haben Zeit und Lust, sich die Sachen aus irgendwelchen Screenshots zusammenzureimen.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • die betreffenden Skripte als Quellcode zu posten.

  • Ich habe gerade überlegt, ob es daran liegen könnte, das meine Excel Zeilen nur bis bsp. 115 gelesen werden; weil mehr hatte ich ja nicht definiert. Vielleicht klappt es ja, wenn ich auch diese bis 224 erweitere...

  • Zwei Punkte sind mir bei deinem Skriptausschnitt aufgefallen, die zwar nicht zur Lösung beitragen aber einen Fehler/eine Warnung ausgeben :

    1.

    Bei Global $aRanges = ...  verbindest Du mehrere Zeilen mittels Unterstrich, also _.

    Dann darf aber keine Leerzeile vorkommen, wie bei dir die Zeile 18.

    2.

    Bei deiner Besetzung der Globals kommt ein Wert zweimal vor :

    ... $_readO, $_readP, $_readQ, ... , $_readDO,  $_reaDP, $_readDQ, ...

    Die unterschiedliche Groß-/Kleinschreibung spielt keine Rolle. Es handelt sich wohl um einen Tippfehler und sollte eigentlich $_readDP lauten (ist bei der Menge an Variablen ja auch kein Wunder).

    Daher liefert die Zeile $_readDP = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][117])

    auch : "warning: $_readDP possibly not declared/created yet"

    Zu mehr reicht meine Zeit momentan nicht.

    Ich möchte Dir aber einen dringenden Rat geben, den Du sicher nicht hören willst ;) :

    AspirinJunkie hat in deinem anderen Thread das Skript als "monströses Konstrukt" bezeichnet, und das sehe ich auch so. So wie das Skript momentan aufgebaut ist, wird es Dir bei Änderungen oder Erweiterungen garantiert um die Ohren fliegen.

    Du hast wahrscheinlich bereits 'zig Stunden in das Projekt investiert und Dich mittlerweile daran gewöhnt. Trotzdem halte ich einen kompletten Relaunch für die bessere Wahl. Ich bin sicher, man könnte vieles optimieren.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Jch bekomme aber jetzt folgende Fehlermeldung, nach der Erweiterung: Array variable has incorrect number of subscripts or subscript dimension range exceeded.

    Just my 2 cents:
    1. Die Fehlermeldung kommt meist dann, dann man nicht berücksichtigt, dass ein Array von 0 bis Größe-1 geht - sowohl bei den Zeilen, als auch bei den Spalten

    2. Du liest ja jede Zelle in eine Variable ein. Warum nicht die ganze Tabelle ein ein Array und dann damit weiterarbeiten?

  • Just my 2 cents:
    1. Die Fehlermeldung kommt meist dann, dann man nicht berücksichtigt, dass ein Array von 0 bis Größe-1 geht - sowohl bei den Zeilen, als auch bei den Spalten

    In den Screenshots sieht man die Fehlermeldung :

    Global $aRanges = ...  wird laut Screenshot (wahrscheinlich das echte Skript) auch anders besetzt, als in dem 'Codeschnippsel' aus Beitrag #4

    Ich bleibe dabei : Zurück an den Zeichentisch und das Projekt neu konzeptionieren !

    Die momentane Variablen-Orgie stumpf weiterzubetreiben, nur weil sie nun schon mal da ist, bringt nichts. Erweiterungen und Änderungen werden zu einem (noch größeren) Debugging-Albtraum, selbst wenn das Skript irgendwie funktioniert. Manchmal ist ein Reset die beste Entscheidung.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Trotzdem halte ich einen kompletten Relaunch für die bessere Wahl.

    Warum nicht die ganze Tabelle ein ein Array und dann damit weiterarbeiten?

    Zurück an den Zeichentisch und das Projekt neu konzeptionieren !

    Vielen dank für eure Anregungen. Ich hab gar keinen Plan, wie ich ein neues besseres Script aufbauend auf einer Excel Datei aufbauend könnte. Ich habe vor ca. 1 Jahr oder länger dieses Script mit der Hilfe dieses Forums erstellt gehabt, alleine hätte ich das niemals geschafft. Einfache Befehle wie Mausklick, Send, Selct Funktionen,... verstehe ich noch; was aber den Grundaufbau eines Scirpts angeht, da bekomme ich schnell MIgräne; nicht nur als Metapher, ich bekomme tatsächlich Migräne (Kopfschmerzen).


    Kann ich um eure Hilfe bitten, bei der Erstellung eines besseren Grundskripts? Und wenn ich hier um Hilfe bitte, wird es glaube ich darauf hinaus laufen, das ich von euch ein fast fertiges Grundskirpt haben will... ( Sorry, lieber bin ich Ehrlich)
    Meine Funktion wird ja weiterhin so bleiben, nur der Aufbau müsste sich ändern. Also die ersten Zeilen... ich weis auch nicht ob ich nach euren Vorstellungen noch so ein "Monströses Konstrukt von Zahlen" bräuchte, oder man dies mit ein paar Zeilen abkürzen könnte.
    Vielleicht könnte mir jemand, der schon ein fertiges besseres Script aufbauend auf einer Excel Datei hat, dieses zur Verfügung stellen.


    PS: Ich glaube ich bekomme mein Problem gelöst, wenn ich auch meine B115 erweitere bis B224; bisher hatte ich dieses nicht gemacht.

  • Ich glaube ich bekomme mein Problem gelöst, wenn ich auch meine B115 erweitere bis B224; bisher hatte ich dieses nicht gemacht.

    Das aktuelle Problem bekommst Du sicher irgendwie in den Griff.

    Zur Zeit verwendest Du Indizes (Plural von Index ^^ ), die außerhalb der Arraydimensionierung liegen. Wenn Du das Array entsprechend erweiterst, dann sollte es wieder passen.

    Kann ich um eure Hilfe bitten, bei der Erstellung eines besseren Grundskripts? Und wenn ich hier um Hilfe bitte, wird es glaube ich darauf hinaus laufen, das ich von euch ein fast fertiges Grundskirpt haben will... ( Sorry, lieber bin ich Ehrlich)

    Erst einmal ein Pluspunkt für die Ehrlichkeit :thumbup: .

    Ob jemand die Zeit bzw. die Lust findet ein fertiges Grundskript zu erstellen bleibt abzuwarten (mein Schreibtisch ist leider voll mit Arbeit).

    Du könntest es möglichen Helfern/Helferinnen aber deutlich leichter machen, wenn Du

    • eine genaue Beschreibung Deines Vorhabens
    • die benötigte Excel-Datei (oder wenn vorhanden auch andere Formate)
    • Dein bisheriges Skript (Komplettfassung)

    zur Verfügung stellen würdest.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Du könntest es möglichen Helfern/Helferinnen aber deutlich leichter machen, wenn Du

    eine genaue Beschreibung Deines Vorhabens
    die benötigte Excel-Datei (oder wenn vorhanden auch andere Formate)
    Dein bisheriges Skript (Komplettfassung)

    zur Verfügung stellen würdest.

    1. Ich brauche Daten von einer Excel Tabelle bspw. Beschreibungen, Zahlen, Titel,... um aktuell KDP ( Amazon Bücher) automatisiert zu veröffentlichen. Idealer Weise wäre der Bereich der Excel Datei, auf dessen Zellen ich zugreifen kann, sehr groß, bspw. 1000 x 1000 ; Aktuell bin ich bei 114 x 114; und versuche gerade auf 224 x 224 zu erweitern. Aber 300 x 300 würden auch ausreichen. Das aktuelle "Monstrum" Skript soll etwas vereinfacht werden... . Ich gebe also in eine Excel Tabelle etwas ein, und anhand dieser Informationen arbeitet dann AutoiT.
    2. siehe Anhang
    3. siehe Anhang

    Ich bin zufrieden mit den Mausklicks, und keiner API oder sonst was. Mit Mausklicks komme ich also zurecht.

    Einmal editiert, zuletzt von Bernd Albrecht (18. Juli 2021 um 00:36)

  • 1. Ich brauche Daten von einer Excel Tabelle bspw. Beschreibungen, Zahlen, Titel,... um aktuell KDP ( Amazon Bücher) automatisiert zu veröffentlichen.

    [...]

    Ich gebe also in eine Excel Tabelle etwas ein, und anhand dieser Informationen arbeitet dann AutoiT.

    Mal ganz blöd gefragt (ich habe nicht alle Deine Beiträge der Vergangenheit im Kopf) ;) :

    Woher stammt diese Excel-Tabelle, die ja offenbar die Datenbasis für alle weiteren Schritte ist ?

    Erstellst Du sie selbst oder kommt sie von dritter Seite ?

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Woher stammt diese Excel-Tabelle, die ja offenbar die Datenbasis für alle weiteren Schritte ist ?

    Erstellst Du sie selbst oder kommt sie von dritter Seite ?

    Ich habe sie selber erstellt, um mir die Arbeit zu vereinfachen. ( Farben,...) Ich weis sie ist etwas kompliziert. Das ist aber eher keine Arbeit...