Hallo Ich arbeite an einem Makro in VBA für Excel. Ich habe eine verschachtelte for-Schleife in meinem Code, wie unten zu sehen ist. Die zweite Schleife läuft nicht; Selbst ein MsgBox() - Befehl innerhalb der zweiten Schleife führt zu keiner Aktion, und das Programm scheint nur die verschachtelte Schleife ohne gemeldete Fehler zu überspringen.VBA verschachtelt für Schleife wird nicht ausgeführt
Im Klartext Diese verschachtelte Schleife soll:
1) in dem Array categories_string die Zeichenfolge des i Eintrag Nehmen (first for-Schleife).
2) eine Iteration durch die 300+ Reihen in der Spalte "AE" in der Excel-Datei (für zweite Schleife, "Länge" die Länge der Spalte von Daten in "AE")
3) sucht string stimmt überein und fügt 1 zu dem entsprechenden Eintrag im Feld categories_value hinzu, das mit Variablen gefüllt ist, die auf 0 gesetzt sind (die if-Anweisung).
For i = LBound(categories_string) To UBound(categories_string)
For p = 1 To p = length
If Worksheets("sheet1").Cells(p + 2, "AE").Value = categories_string(i) Then
categories_value(i) = categories_value(i) + 1
End If
Next
Next
'Für p = 1 Länge ' –
Da Sie bereits wissen, wie man mit Arrays arbeitet, warum nicht die Werte in Spalte AE in ein Array und Zyklus stattdessen durch? Es wäre schneller, als die Zellen selbst zu schleifen. 'AEArray = Worksheets (" sheet1 "). Range (" AE3: AE "& länge) .Wert' dann machen Sie stattdessen eine andere Schleife für dieses Array. –
Ihre Antwort hat es behoben. Und super Vorschlag! Dies ist nur mein zweiter Tag der Verwendung von VBA, so dass jeder Ratschlag geschätzt wird. – PSwalker