Don't understand why "4054" in Yellow counts for "434".
Option Explicit
Sub test()
Dim myNumbers, e, i As Long, x, y
myNumbers = VBA.Array(VBA.Array(434, 0), VBA.Array(663, 0))
With Cells(1).CurrentRegion
For i = 0 To UBound(myNumbers)
x = mySort(myNumbers(i)(0))
If IsArray(x) Then
For Each e In .Value
y = mySort(e)
If IsArray(y) Then
If Join$(y, "") Like "*" & Join$(x, "*") & "*" Then
myNumbers(i)(1) = myNumbers(i)(1) + 1
End If
End If
Next
End If
Next
With .Offset(, .Columns.Count + 2).Resize(1, 2)
.CurrentRegion.ClearContents
.Value = [{"Numbwer","Appearance"}]
.Offset(1).Resize(UBound(myNumbers) + 1).Value = _
Application.Transpose(Application.Transpose(myNumbers))
End With
End With
End Sub
Private Function mySort(txt)
Dim a, i As Long, ii As Long, temp
If Len(txt) > 1 Then
a = Split(StrConv(txt, 64), Chr(0))
ReDim Preserve a(UBound(a) - 1)
For i = LBound(a) To UBound(a) - 1
For ii = i + 1 To UBound(a)
If a(i) > a(ii) Then
temp = a(i)
a(i) = a(ii)
a(ii) = temp
End If
Next
Next
mySort = a
ElseIf Len(txt) = 1 Then
mySort = VBA.Array(txt)
Else
mySort = Empty
End If
End Function
Bookmarks