在“V34:V99”列中,数字1、2、3、0按零散顺序排列。如果出现2或3种情况,我想要计算出(n) (三个连续的1 к=3,不考虑零)的情况,然后是k=o。我编写了代码,但它不起作用(没有给出很多情况)。
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码
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发布于 2017-06-13 09:49:03
不能以这种方式使用Or语句。您应该使用Cell.Value = 2 Or Cell.Value = 3,您还可以为自己保存一个If语句,请参阅下面更新的代码:
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
ElseIf Cell.Value = 2 Or Cell.Value = 3 Then
k = 0
End If
Next Cell
End Subhttps://stackoverflow.com/questions/44515049
复制相似问题