Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 9 Redim

Laufzeitfehler 9 Redim
04.04.2019 19:13:08
Neugebauer
Hallo Zusammen,
Ich versuche für meine Arbeit ein Makro zu programmieren, um Doppelte Werte herauszufiltern. Im Prinzip kriege ich eine Rohdaten Datei und muss diese bearbeiten. Hierzu lese ich alle Sheets in ein Array ein, um diese nachher miteinander zu vergleichen. Als nächstes muss ich die doppelten Werte wiederum nach dem Titel filtern, um diese gezielt löschen zu können, sobald ein weiteres Kriterium erfüllt ist. Dazu muss ich die Länge der eingelesenen Doppelten Werte im Array nach Filterung der zusammenhängenden Titel filtern. Um dies durchzuführen, arbeite ich mit Redim Preserve Array, was aber zu einem Laufzeitfehler 9führt. Im Prinzip sieht die Programmierung so aus:
start=0
for i = 0 to ubound(arrAnz)
Sprung: zaehler=2
If(iKleiner0) Then
start=start+1
End if
For j = 0 to Ubound(arrAnz)
Redim preserve wert1(start)
If arrAnz(i) = arrAnz(j+1) then
Zaehler=Zaehler+1
Wert1(start) = zaehler
Elseif i=0 Then
wert1(start) = 2
Else: goto sprung
Die Ausgabe sieht so ungefähr aus:
Wert1(0) = 2
Wert1(1) = 3
Wert1(1) = 4
Wert2(2) hier kommt der Laufzeitfehler 9.
Ich wäre euch dankbar wenn ihr mir weiterhelfen könntet.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 9 Redim
04.04.2019 19:22:16
onur
"Ich wäre euch dankbar wenn ihr mir weiterhelfen könntet." - nur mit komplettem Code oder der Datei.
Man sieht nicht mal, wo was deklariert wurde oder was iKleiner0 ist (Was soll denn "If(iKleiner0)" überhaupt sein?).
Hättest du die <pre>-Tags benutzt, ,,,
04.04.2019 23:10:59
Luc:-?
…Mstr Neugebauer,
die auch der PgmCode-Darstellung dienen, wäre dein Pgm ggf leichter lesbar gewesen und statt (iKleiner0), unter der Annahme, dass das kein VariablenName ist, hättest du auch i < 0 schreiben können, wobei das natürlich noch zweifelhafter wäre, denn i kann hier niemals negativ wdn. Ergibt UBound(arrAnz) bei fehlendem ParamArray arrAnz() als Übergabe-PgmParameter -1 würde die Schleife auch gar nicht erst ausgeführt wdn.
Desweiteren ist unverständlich, warum 2 gleichartige Schleifen ineinander geschachtelt wdn, wobei auch noch das letzte End If und beide SchleifenAbschlüsse fehlen! Dann noch ein unmotivierter RückwärtsSprung von der inneren in die äußere Schleife und ein ReDim Preserve, dessen Zweck sich auch nicht recht erschließen will, wenn man die gezeigte ungefähre Ausgabe heranzieht.
Da Eruierungsmöglichkeiten auf Grund mangelnder Info weitgehend fehlen, kann auch nur vermutet wdn, dass der Fehler durch Dimen­sionierungs­überschreitung zustande kommt.
Fazit: Zumindest als Anfänger sollte man einer Anfrage nicht nur ein vollständiges Pgm, sondern auch Daten beifügen (File-Upload im Forum!), an denen getestet wdn kann. Auch hinterlässt der PgmTorso einen seltsam umständlichen Eindruck, was beim angegebenen VBA-Level auch nicht verwunderlich ist. Hier wurde höchstwahrscheinlich zu kompliziert gedacht.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige