我有一个列表 A1:A4000,想要对其进行排序或查找在一个单元格中两次出现特殊字符“@”的单元格。
答案1
我尊重 duDE 的评论,但我有这个方便:
使用此公式添加额外的列。假设第一个值在 A2 中
=LEN(A2)-LEN(SUBSTITUTE(A2,"@",""))
然后,您可以按此新列进行排序,以得出发生次数
答案2
这样做就可以了
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