VBA检查行的单元格是否连续包含相同的文本

时间:2016-02-02 09:16:43

标签: excel vba

我有一排24个单元格,其值为Null且为“ON”。我想写一个宏来检查这一行,如果它连续包含2个6“ON”的块。请帮忙

1 个答案:

答案 0 :(得分:0)

您没有指定块之间是否需要任何空单元格,或者6个连续ON中的2个以上块是否满足条件。我假设只有2个区块符合标准,并且这两个区块可以在彼此之后,即连续12个ON。

Function CheckForOn()

    Dim myRange
    Dim numberOfONs
    Dim numberOfBlocks
    Set myRange = Worksheets("Sheet2").Range("A1:X1")
    numberOfONs = 0
    numberOfBlocks = 0

    For Each cell In myRange
        If cell.Value = "ON" Then
            numberOfONs = numberOfONs + 1
            If numberOfONs = 6 Then
                numberOfBlocks = numberOfBlocks + 1
                numberOfONs = 0
            End If
        Else
            numberOfONs = 0
        End If
    Next cell

    If numberOfBlocks = 2 Then
        CheckForOn = True
    Else
        CheckForOn = False
    End If

End Function