我正在尝试设置一个当单元格的值高于同一列中的前5个单元格时显示一条消息的代码。
这是我的代码:
Sub IncreasingFor_5Steps()
Dim i, j As Integer
For i = 7 To 20
For j = 1 To 5
If Cells(i, 5).Value > Cells(i - j, 5).Value Then
Cells(i, 6) = "Increased for 5 steps"
End If
Next j
Next i
End Sub
当我运行此代码时,当单元格高于至少一个单元格(超过前五个单元格)时,将显示消息“ Increased for 5 steps”(增加5个步骤),但是我只想显示该消息(如果单元格更高)比以前的所有5个单元格都强,但我不知道该怎么办。
例如在F7中看到此消息,则显示消息,而E7低于E4,也E20低于E19,但显示消息,因为E20高于E15,E16,E17,E18,但我不希望这样:
,
最佳答案
像这样尝试,您需要一个布尔标志来解决它:
Sub IncreasingFor_5Steps()
Dim i As Integer, j As Integer
Dim flag As Boolean
For i = 7 To 20
flag = False
For j = 1 To 5
If Cells(i, 5).Value <= Cells(i - j, 5).Value Then
flag = True
End If
Next j
If Not flag Then Cells(i, 6) = "Increased for 5 steps"
Next i
End Sub
布尔标志的思想是检查所有5个单元是否较小,如果其中一个不小于,则变为
true
。一旦为true,Cells(i,6)
就不会递增。