User Tools

Site Tools


microsoft_excel:macro_count_binary

This is an old revision of the document!


Microsoft Excel - Macro Count Binary

' Binary Count of array.
' Returns the number of vCrit found within the array oArrWithCrit.
Function ArrayCountIf(oArrWithCrit As Variant, vCrit As Variant)
    Dim low As Long
    low = LBound(oArrWithCrit)
    Dim high As Long
    high = UBound(oArrWithCrit)
    Dim i As Long
    Dim J As Long
    Dim result As Boolean
 
    ArrayCountIf = 0
 
    Do While low <= high
        i = (low + high) / 2
        If vCrit = oArrWithCrit(i, 1) Then
            ArrayCountIf = ArrayCountIf + 1
            ' Now that found run sequentially while same value
            J = i - 1
            i = i + 1
 
            Do While (i <= high)
                If vCrit = oArrWithCrit(i, 1) Then
                    ArrayCountIf = ArrayCountIf + 1
                    i = i + 1
                Else
                  Exit Do
                End If
            Loop
 
            Do While (J >= low)
                If vCrit = oArrWithCrit(J, 1) Then
                    ArrayCountIf = ArrayCountIf + 1
                    J = J - 1
                Else
                  Exit Do
                End If
            Loop
 
            Exit Do
        ElseIf vCrit < oArrWithCrit(i, 1) Then
            high = (i - 1)
        Else
            low = (i + 1)
        End If
    Loop
 
End Function
microsoft_excel/macro_count_binary.1594805433.txt.gz ยท Last modified: 2020/07/15 09:30 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki