Habe hier diesen VBA-Schnippsel der leider nicht funktioniert.Kann mir jemand sagen wo der Fehler liegt?

... komplette Frage anzeigen

2 Antworten

Du kommst mit deinen Indizes durcheinander. Das Array hat nur zwei Elemente, du zählst j aber von 0 bis 2, also 0, 1, 2. Das sind drei Durchläufe.

Statt immer i+1 zu schreiben, kannst du auch direkt i von 1 bis 6 laufen lassen.

j=0 unter der inneren Schleife kannst du dir sparen.

Antwort bewerten Vielen Dank für Deine Bewertung
Sub arr()
Dim i As Integer
Dim j As Integer
Dim arri() As Variant
arri = Array("Z06", "Z15")

For i = 0 To 5

For j = LBound(arri) To UBound(arri)


If Cells(i + 1, 1).Value = arri(j) Or Cells(i + 1, 1).Value = arri(j) Then

Cells(i + 1, 1).Interior.ColorIndex = 37

End If
Next j

Next i
End Sub

Nur mal schnell angepasst, dass es funzt. von 0 bis 2 zählen klappt bei dem Array nicht, du hast nur 2 Werte zugewiesen. Man kann ansonsten noch etwas mehr verbessern

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Suboptimierer
23.05.2016, 11:06

Die Zeile verstehe ich nicht:

If Cells(i + 1, 1).Value = arri(j) Or Cells(i + 1, 1).Value = arri(j) Then
1
Kommentar von felixschaefer92
23.05.2016, 15:05

Vielen Dank für deine Hilfe! hat super geklappt :D

0