1
在「V34:V99」列中,散列順序中有數字1,2,3,0。 我想統計有多少情況(n)(連續三次1 к=3
,未考慮零),如果發生2或3,則k=o
。 我寫了代碼,但它不起作用(不給出一些情況(n))。MsgBox不給出值
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
你想在'V34檢查值:V99'範圍內或在全行?因爲現在你正在檢查整行('parRange.Rows')。如果這是正確的,那麼我認爲通過使用'For Each Cell In parRange.Rows',您可以按列獲得單元格,即「A34,A35,A36,...,A99,B34,B35 ...」。 –
你也可以通過用'ElseIF Cell.Value = 2或3'替換'End If,如果Cell.Value = 2或3'來避免額外的if語句。我也不確定Or語句是這樣工作還是你應該寫'Cell.Value = 2或Cell.Value = 3' – Luuklag
@Luuklag,Cell.Value = 2或Cell.Value = 3幫助,現在所有的作品。非常感謝 ! – maxim465