Function Levenshtein(s1, s2)
Dim i%, j%, L1%, L2%, d%(), min1%, min2%
L1 = Len(s1)
L2 = Len(s2)
ReDim d(L1, L2)
For i = 0 To L1
d(i, 0) = i
Next
For j = 0 To L2
d(0, j) = j
Next
For i = 1 To L1
For j = 1 To L2
If Mid(s1, i, 1) = Mid(s2, j, 1) Then
d(i, j) = d(i - 1, j - 1)
Else
min1 = d(i - 1, j) + 1
min2 = d(i, j - 1) + 1
If min2 < min1 Then min1 = min2
min2 = d(i - 1, j - 1) + 1
If min2 < min1 Then min1 = min2
d(i, j) = min1
End If
Next
Next
Levenshtein = d(L1, L2)
End Function