14.03.2023, 14:52
Hallo wertes Forum,
ich habe gerade ein Problem mit einem Array, das unter bestimmten Umständen einen Fehler verursacht.
Die Ausgangslage ist, dass ich aus einer mehrspaltigen MultiSelect-Listbox die Ergebnisse in ein Array einlese. Dazu dimensioniere ich das Array mit der Anzahl an Zeilen in der Listbox, anschließend lese ich jede Zeile spaltenweise ins Array. Abschließend redimensioniere ich das Array auf die wirklich benötigte Menge an Daten und transponiere das Array, damit ich damit besser arbeiten kann.
Das funktioniert bestens, außer es wurde nur ein Eintrag in der Listbox ausgewählt, dann erhalte ich folgende Fehlermeldung in der folgenden Zeile:
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs
Aus mir unbekannten Gründen geht beim Transponieren die zweite Dimension verloren.
UBound(arrTest1, 1) ist wie erwartet 8, UBound(arrTest1, 2) erzeugt den Fehler.
Wie löse ich das Problem? Das Makro soll ja für unterschiedliche Anzahl an Einträgen funktionieren.
Beispiel Arrray.xlsm (Größe: 14,48 KB / Downloads: 5)
Ich habe eine Beipieldatei angefügt, die das Problem darstellt. Setzt man zu Beginn der Schleife den To-Wert auf 3, funktioniert's perfekt und das Array wird zweimal in verschiedenen Ausrichtungen ausgegeben. Setzt man den To-Wert auf 1 (From und To auf 2 etc.), läuft es in den Fehler.
Es handelt sich um eine Beispieldatei, daher keine Listbox etc.
Vielen Dank für Eure Hilfe,
Lutz
ich habe gerade ein Problem mit einem Array, das unter bestimmten Umständen einen Fehler verursacht.
Die Ausgangslage ist, dass ich aus einer mehrspaltigen MultiSelect-Listbox die Ergebnisse in ein Array einlese. Dazu dimensioniere ich das Array mit der Anzahl an Zeilen in der Listbox, anschließend lese ich jede Zeile spaltenweise ins Array. Abschließend redimensioniere ich das Array auf die wirklich benötigte Menge an Daten und transponiere das Array, damit ich damit besser arbeiten kann.
Das funktioniert bestens, außer es wurde nur ein Eintrag in der Listbox ausgewählt, dann erhalte ich folgende Fehlermeldung in der folgenden Zeile:
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs
Code:
'**** Jetzt folgt der Fehler ****
Debug.Print UBound(arrTest1, 1), UBound(arrTest1, 2)
Range(Cells(20, 1), Cells(20 + UBound(arrTest1, 1) - 1, UBound(arrTest1, 2))) = arrTest1
UBound(arrTest1, 1) ist wie erwartet 8, UBound(arrTest1, 2) erzeugt den Fehler.
Wie löse ich das Problem? Das Makro soll ja für unterschiedliche Anzahl an Einträgen funktionieren.

Ich habe eine Beipieldatei angefügt, die das Problem darstellt. Setzt man zu Beginn der Schleife den To-Wert auf 3, funktioniert's perfekt und das Array wird zweimal in verschiedenen Ausrichtungen ausgegeben. Setzt man den To-Wert auf 1 (From und To auf 2 etc.), läuft es in den Fehler.
Es handelt sich um eine Beispieldatei, daher keine Listbox etc.
Vielen Dank für Eure Hilfe,
Lutz