Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: For Next Schleife mit mehreren Variablen

For Next Schleife mit mehreren Variablen
13.07.2016 10:38:35
Tobias
Hallo Gemeinde,
Mein Problem bezieht sich auf den folgenden Code. Ich möchte praktisch haben, dass bei jedem Durchlauf ein neues i UND ein neues k verwendet werden. In seiner jetzigen Form nimmt er ein k durchläuft damit alle is dann das nächste k wieder alle is und soweiter. Mir ist klar dass ich die Sache falsch angeh, komme aber auch einfach nicht auf die Lösung. Kann mir jemand helfen?
'If algtyp = "CB" Then
'For i = 5 To 18 Step 1
'For k = 17 To 147 Step 10
'h = k + 9
'If ThisWorkbook.Worksheets("PQ").Cells(i, 11).Value = "" Then
'Else
'Range(Cells(k, 1), Cells(h, 1)).EntireRow.Select
'Selection.EntireRow.Hidden = True
'End If
'    Next i
'    Next k
'End If

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For Next Schleife mit mehreren Variablen
13.07.2016 10:45:09
UweD
Hallo
so...
    If algtyp = "CB" Then
        k = 17
        For i = 5 To 18 Step 1
            h = k + 9
            If ThisWorkbook.Worksheets("PQ").Cells(i, 11).Value <> "" Then
                Range(Cells(k, 1), Cells(h, 1)).EntireRow.EntireRow.Hidden = True
            End If
            k = k + 10
        Next
    End If

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD
Select braucht man nicht (zu 99%)

Anzeige
AW: For Next Schleife mit mehreren Variablen
13.07.2016 11:28:38
Tobias
Super Danke das Prinzip hab ich verstanden und es funktioniert.
Nur mit dem Else hab ich mich vertan und das Programm hat genau das Gegenteil davon gemacht was es hätte tun sollen ;)

AW: For Next Schleife mit mehreren Variablen
13.07.2016 11:51:10
UweD
Hallo
Beides negieren, ist das Gleiche
            If ThisWorkbook.Worksheets("PQ").Cells(i, 11).Value <> "" Then
                Range(Cells(k, 1), Cells(h, 1)).EntireRow.EntireRow.Hidden = True
            End If


            'ist das Gleiche wie 
            If ThisWorkbook.Worksheets("PQ").Cells(i, 11).Value = "" Then
                'tu nichts 
            Else
                Range(Cells(k, 1), Cells(h, 1)).EntireRow.EntireRow.Hidden = True
            End If

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

For Next Schleife mit mehreren Variablen in VBA


Schritt-für-Schritt-Anleitung

Um eine For Next Schleife in VBA zu erstellen, die mit zwei Variablen arbeitet, folge diesen Schritten:

  1. Definiere deine Variablen: In diesem Fall verwenden wir i und k.
  2. Setze die Schleifen: Benutze eine äußere Schleife für i und eine innere Schleife für k.
  3. Implementiere die Logik: Innerhalb der Schleifen kannst du die Bedingungen festlegen, die du benötigst.

Hier ist ein Beispielcode, der zeigt, wie du dies umsetzen kannst:

If algtyp = "CB" Then
    k = 17
    For i = 5 To 18 Step 1
        h = k + 9
        If ThisWorkbook.Worksheets("PQ").Cells(i, 11).Value <> "" Then
            Range(Cells(k, 1), Cells(h, 1)).EntireRow.Hidden = True
        End If
        k = k + 10
    Next i
End If

In diesem Code wird die For Next Schleife verwendet, um mit zwei Variablen (i und k) durch eine Tabelle zu iterieren. Beachte, dass k in jedem Durchlauf um 10 erhöht wird, was das gewünschte Verhalten sicherstellt.


Häufige Fehler und Lösungen

  1. Problem: Schleifen laufen nicht korrekt

    • Lösung: Stelle sicher, dass die Schleifen korrekt verschachtelt sind. Achte darauf, dass k innerhalb der Schleife für i aktualisiert wird.
  2. Problem: Falsche Bedingungen im If-Statement

    • Lösung: Überprüfe die Bedingungen und stelle sicher, dass sie korrekt formuliert sind. In diesem Beispiel sollte das If-Statement sicherstellen, dass die Zelle nicht leer ist.

Alternative Methoden

Eine alternative Methode zur Verwendung der For Next Schleife in VBA könnte die Verwendung einer Do While Schleife sein. Diese bietet mehr Flexibilität in der Steuerung der Schleifenbedingungen. Hier ein Beispiel:

k = 17
i = 5
Do While i <= 18
    h = k + 9
    If ThisWorkbook.Worksheets("PQ").Cells(i, 11).Value <> "" Then
        Range(Cells(k, 1), Cells(h, 1)).EntireRow.Hidden = True
    End If
    k = k + 10
    i = i + 1
Loop

Diese Methode kann nützlich sein, wenn du die Schleife unter bestimmten Bedingungen vorzeitig beenden möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du eine for Schleife mit 2 Variablen in verschiedenen Szenarien verwenden kannst:

  • Datenanalyse: Verstecke Zeilen basierend auf bestimmten Bedingungen, wie im obigen Beispiel.
  • Berichterstattung: Erstelle Berichte, indem du mehrere Variablen zur Iteration durch verschiedene Datenabschnitte verwendest.

Tipps für Profis

  • Verwende Continue For: Wenn du in einer For Next Schleife einen bestimmten Durchlauf überspringen möchtest, kannst du Continue For verwenden. Dies ist besonders nützlich, wenn du nur bestimmte Werte verarbeiten möchtest.

  • Debugging: Nutze die Debug.Print-Funktion, um den Status deiner Variablen während der Schleifen-Durchläufe zu verfolgen. Dies hilft dir, Probleme schnell zu diagnostizieren.

Debug.Print "i: " & i & ", k: " & k

FAQ: Häufige Fragen

1. Wie kann ich eine For Next Schleife mit mehr als zwei Variablen erstellen?
Du kannst mehrere verschachtelte For Next Schleifen erstellen, um mehr Variablen zu verwenden. Achte darauf, dass jede Schleife ihre eigenen Variablen hat.

2. Was ist der Unterschied zwischen For Next und Do While Schleifen?
Die For Next Schleife wird oft verwendet, wenn die Anzahl der Durchläufe bekannt ist, während die Do While Schleife flexibler ist und auf Bedingungen basiert, die während der Ausführung überprüft werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige