1
"V34:V99"列には、1,2,3,0の桁が散在しています。 2つまたは3つが発生した場合は、どれくらい多くの状況(n)(0を考慮せずに3つの連続した1つのк=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'範囲または全行であなたは、自分で
If
文を保存し、以下の更新されたコードを見ることができます。またCell.Value = 2 Or Cell.Value = 3
を使用する必要がありますか?今は完全な行をチェックしているので( 'parRange.Rows')。これが正しければ、 'For each Cell In parRange.Rows'を使って、' A34、A35、A36、...、A99、B34、B35、... 'という列でセルを取得すると思います。 –また、 'End If、If Cell.Value = 2 Or 3'を' ElseIF Cell.Value = 2 Or 3'で置き換えることによって余分なif文を避けることもできます。また、Or文がこのように動作するかどうかわかりません。 'Cell.Value = 2 Or Cell.Value = 3'と書くべきです。 – Luuklag
@Luuklag、Cell.Value = 2、またはCell.Value = 3が役に立ちます。どうもありがとう ! – maxim465