2013-04-15 4 views
0

может кто-нибудь сказать мне, как проверить ячейку, A1 содержит 2 одинаковых номера? Пример ячейки A1 = 1124. Это то, что я имел в виду, содержит 2 одинаковых номера, и если да, то B1 будет «Да». Большое спасибо.Проверьте, есть ли у ячейки два номера

+0

Ну, самый быстрый способ я вижу, чтобы получить там: преобразовать его в строку, а затем запустить [эту функцию] (http://www.codevba.com/visual-basic-source-code/vb-string/count_occurrences_in_a_string.htm) для каждого из символов от 0 до 9. Это некрасиво, но это работает. –

+0

Просто любопытно. Какую версию Excel вы используете? –

ответ

1

Если вы используете Excel 2010 (не тестировался в Excel 2007), для этого вам не нужен VBA. Вы можете использовать эту Формулу в B1 и скопировать ее.

=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")))))))))) 

Объяснение

Формула чеки от 0 - 9 в ячейке первенствовать если это конкретное число повторно curring.

скриншоте

enter image description here

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 
+0

Привет всем, я использую excel 07, и мне нужно использовать vba для этого. Спасибо – user388197

+0

В этом случае см. Чернила, данные @RobertHarvey. Это должно быть достаточно для вас :) –

+0

@ user388197: BTW Вышеуказанная формула также может использоваться в VBA –

Смежные вопросы