У меня есть список A1:A4000 хочет отсортировать или найти ячейки, имеющие специальный символ '@', два раза в одной ячейке.
2 ответа
3
Я уважаю комментарий duDE, но у меня есть это под рукой:
Добавьте дополнительный столбец с этой формулой. Это предполагает, что первое значение находится в A2
=LEN(A2)-LEN(SUBSTITUTE(A2,"@",""))
Затем вы можете отсортировать по этому новому столбцу, чтобы дать вам количество вхождений
1
Это сделает это
Option Explicit
Sub Sigh()
Dim row As Integer
row = 1 'UPDATE THIS FROM 1 TO THE FIRST ROW
Do While (Range("A" & row).Value <> "")
Dim occurances As Integer
occurances = StringCountOccurrences(Range("A" & row).Value, "@")
If (occurances > 1) Then
Range("B" & row).Value = "Yes"
End If
row = row + 1
Loop
End Sub
Function StringCountOccurrences(strText As String, strFind As String, _
Optional lngCompare As VbCompareMethod) As Long
'copied from http://codevba.com/visual-basic-source-code/vb-string/count_occurrences_in_a_string.htm#.VbIjzyty3OQ
Dim lngPos As Long
Dim lngTemp As Long
Dim lngCount As Long
If Len(strText) = 0 Then Exit Function
If Len(strFind) = 0 Then Exit Function
lngPos = 1
Do
lngPos = InStr(lngPos, strText, strFind, lngCompare)
lngTemp = lngPos
If lngPos > 0 Then
lngCount = lngCount + 1
lngPos = lngPos + Len(strFind)
End If
Loop Until lngPos = 0
StringCountOccurrences = lngCount
End Function