Sprawdź, czy komórka ma dwa numery same - excel-vba

can someone tell me how to check a cell, A1 has zawiera 2 identyczne liczby? Przykład komórki A1 = 1124. To, co miałem na myśli, zawiera dwie identyczne liczby, a jeśli tak, to B1 będzie "Tak". Dziękuję bardzo.

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli korzystasz z programu Excel 2010 (Nie testowany w programie Excel 2007), nie potrzebujesz do tego VBA. Możesz użyć tej formuły w B1 i skopiuj go.

=IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(1),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(2),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(3),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(4),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(5),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(6),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(7),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(8),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(9),"",2),"Yes",
IF(LOWER(A1)<>SUBSTITUTE(LOWER(A1),LOWER(0),"",2),"Yes",
"No"))))))))))

Wyjaśnienie

Formuła sprawdza od 0 - 9 w komórce programu Excel, jeśli ta konkretna liczba jest powtarzająca się.

Zrzut ekranu

wprowadź opis obrazu tutaj

Wersja VBA:

Sub Sample()
Debug.Print Does2NumbersMatch(Range("A1"))
End Sub

Function Does2NumbersMatch(rng As Range)
Dim i As Long

Does2NumbersMatch = "No"

For i = 0 To 9
isMatch = Application.Evaluate("=IF(LOWER(" & rng.Address & ")<>SUBSTITUTE(LOWER(" & _
rng.Address & "),LOWER(" & i & "),"""",2),""Yes"",""No"")")
If isMatch = "Yes" Then
Does2NumbersMatch = "Yes"
Exit Function
End If
Next i
End Function

Menu