我正在尝试设置一个当单元格的值高于同一列中的前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,但我不希望这样:

excel - 双环绝对值-LMLPHP

最佳答案

像这样尝试,您需要一个布尔标志来解决它:

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)就不会递增。

10-06 05:11