However, there is no point in using Dictionary, because with the improved FOR the code is faster than with Dictionary
1. We will see this fragment in BuildOverLay
Code:
count = 0
For k = 1 To UBound(varOverlay_Data, 1)
If varOverlay_Data(k, lngOS_FamMatchColIndex) = varOverlay_Data(i, lngOS_FamMatchColIndex) Then
If varOverlay_Data(k, 1) = varOverlay_Data(i, lngOS_ParColNum) Then
count = count + 1
End If
End If
Next k
' instead of CountIfs - end
' -------------------
We'll soon have a condition check: If count = 0 Then. So with count = 1 we already know that the condition is not met, so we don't have to finish the FOR loop. Instead of the above fragment, this fragment will suffice
Code:
count = 0
For k = 1 To UBound(varOverlay_Data, 1)
If varOverlay_Data(k, lngOS_FamMatchColIndex) = varOverlay_Data(i, lngOS_FamMatchColIndex) Then
If varOverlay_Data(k, 1) = varOverlay_Data(i, lngOS_ParColNum) Then
count = 1
Exit For
End If
End If
Next k
2. Similarly change the fragment in min3
Code:
count = 0
For i = 1 To UBound(varOverlay_Data, 1)
If varOverlay_Data(i, lngOS_NDSRIColNum) = rM Then count = count + 1
Next i
na ten fragment
Code:
count = 0
For i = 1 To UBound(varOverlay_Data, 1)
If varOverlay_Data(i, lngOS_NDSRIColNum) = rM Then
count = count + 1
If count > 1 Then Exit For
End If
Next i
Now the code is faster