Excel auslesen verschachtelte Schleifen

maybebaby

Mitglied
Hallo meine Lieben,

ein frohes Neues wünsch ich allerseits :)

Leider fange ich das Jahr schon wieder etwas verwirrt an... :confused:

Ich würde gerne, oder sagen wir muss, eine Exceltabelle auslesen, und das mit einer verschachtelten Schleife.
Einfaches Auslesen mache ich wie folgt:

For xRows = 3 To 62 'Anzahl Zeilen
For xCols = 7 To 30 'Anzahl Spalten


Nun müsste ich aber hier drinnen nochmal eine Schleife durchgehen, weil ich eine Zeile mehrfach durchgehen muss.
Wie kann ich das machen ?
ich kann ja nicht xRows oder xCols nochmals verwenden, und bei anderen Variablen bekomme ich einen Laufzeitfehler


Next xCols
Next xRows




vlg jackie :confused:
 
ich weiss dass meine frage dumm klingt, aber ich kann einfach keine weitere for schleife innen reinsetzen da bekomme ich einen laufzeitfehler.
benutze ich eine whileschleife kann ich den zähler nicht zurücksetzen, da bekomme ich auch einen laufzeitfehler...

ich bin voll verzweifelt weil das kann ja irgendwie alles nicht sein... hatte jemand schonmal dieses problem ? :confused: :confused: :confused:
 
Hallo Jackie,

trotz mehrmaligem Durchlesen habe ich leider wirklich nicht verstanden, was Du willst. Die Schleifenschachtelung sollte in VBA auch tiefer möglich sein.

Und da Du die Zeilen schon durchgehst, warum musst Du sie noch mal durchgehen? Was für einen Laufzeitfehler bekommst Du denn?

Vielleicht solltest Du etwas mehr Code posten, damit man sich besser vorstellen kann, was Du vorhast, und warum es nicht geht.

Liebe Grüsse
ronaldh
 
Hallo Ronald
du hast mich schon richtig verstanden ich wollte die Schleifen tiefer schachteln, d.h. in die 2fach geschachtelte noch eine 3te und vielleicht auch noch eine 4te Schleife hinein.

Visual Basic:
For xRows = 3 To 62 'Anzahl Zeilen
        For xCols = 7 To 30 'Anzahl Spalten

           'Auswertung wos bunt werden soll
            If (xCols Mod 2 <> 0) Then 
            For Tab2Spalte =0 To  54
               Inhalt2 = Sheets("Tabelle2").Cells(3, Counter)
                If (Inhalt <> 0) Then
                    If (Inhalt < Inhalt2) Then
                        Sheets("Tabelle2").Cells(Line2, Counter) = "33"
                    End If
                End If
            Next Tab2Spalte

        Next xCols
    Next xRows

Dieses Stück Code funktioniert nicht. Wenn ich die For Schleife mit der variablen Tab2Spalte auskommentiere, dann geht es wieder, oder wenn ich diese durch eine While Schleife ersetze. Allerdings kann ich bei einer Whileschleife den Zähler nicht mehr zurücksetzen. dann bekomm ich immer einen Laufzeitfehler 1004.
Gibt es irgendwo eine Auflistung, was welcher Laufzeitfehler bedeutet ?
 
An der Tiefe der Schachtelung der Schleife liegt es definitiv nicht. Du hast hier sicherlich einen Programmfehler in der innersten Schleife.

Das, was mir hier auffällt, sind folgende Punkte:
Es fehlt ein "End If" (für "If (xCols Mod 2 <> 0) Then" ).
Was für Inhalte haben die Variablen "Line2" und "Counter"? Ich vermute, dass diese Variablen nicht richtig gefüllt sind.

1004 heißt, soviel ich weiß, dass keine Zelle angegeben wurde. Guck Dir doch mal diesen Link an.
 
Hi,

Danke für die Tips, aber daran hat es nicht gelegen das war nur weil ich zu doof war den Code teilweise und dann noch komplett was zusammengehört zu kopieren.. ich wollte nicht das ganze lange Ding hier reinknallen...

Also ich weiss auch nicht das is ein ganz seltsames Phänomen, ich habs jetzt einfach ganz anders gelöst, so hat das ja keinen Sinn..

Aber danke für den Link der hat mir echt super geholfen ! (nicht nur für dieses Projekt !)

viele liebe Grüße :)
 

Neue Beiträge

Zurück