In der Spalte "V34: V99" stehen die Ziffern 1,2,3,0 in der gestreuten Reihenfolge. Ich möchte zählen, wie viele Situationen (n) sein werden (drei aufeinanderfolgende 1 к=3
, ohne Berücksichtigung von Nullen), wenn 2 oder 3 auftreten, dann k=o
. Ich habe den Code geschrieben, aber es funktioniert nicht (gibt keine Anzahl von Situationen (n)).MsgBox gibt keinen Wert
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
3
0
1
0
3
0
0
0
3
0
1
0
1
0
0
1
3
0
1
0
0
0
0
0
0
0
0
0
0
0
0
-Code
Sub а33условие3()
Dim k, n As Integer
Dim parRange As Range
Set parRange = Range("V34:V99")
k = 0
n = 0
For Each Cell In parRange.Rows
If Cell.Value = 1 Then
k = k + 1
If k = 3 Then
n = n + 1
k = o
MsgBox n
End If
End If
If Cell.Value = 2 Or 3 Then
k = 0
End If
Next Cell
End Sub
Haben Sie Werte in 'V34 überprüfen möchten: V99' Bereich oder in voller Reihen? Weil Sie jetzt volle Zeilen prüfen ('parRange.Rows'). Wenn das richtig ist, dann denke ich, indem ich für jede Zelle in ParRange.Rows 'Zellen nach Spalten verwende, d. H.' A34, A35, A36, ..., A99, B34, B35, ... '. –
Sie können auch eine zusätzliche if-Anweisung vermeiden, indem Sie 'End If, wenn Cell.Value = 2 oder 3 'durch' ElseIF Cell.Value = 2 oder 3' ersetzen. Auch bin ich mir nicht sicher, ob die Oder-Anweisung so funktioniert, oder dass Sie 'Cell.Value = 2 oder Cell.Value = 3' schreiben sollten – Luuklag
@Luuklag, Cell.Value = 2 Oder Cell.Value = 3 hilft, jetzt funktioniert alles. Danke vielmals ! – maxim465