除了某些字符function外,还会提取excel范围内的唯一字符

如果excel中有A1:B100中的string数据,我想提取除az az 0-1之外的字符,并且每个字符显示一次。 我想得到像+, – 等,可有人请给我一个手?

示例数据是

+------------+------+ | ColA | ColB | +------------+------+ | Blue Berry | 4 | | Apple | 4+ | | Orange; | 44 | +------------+------+ 

我想在一个单元格的结果作为空间+;

尝试这个:

 Sub showspecials() Dim r As Range, rng As Range, msg As String Dim S As String, L As String, CH As String Set rng = Range("A1:B100") msg = "" For Each r In rng S = r.Text L = Len(S) If L <> 0 Then For i = 1 To L If Mid(S, i, 1) Like "[0-9a-zA-Z]" Then Else msg = msg & vbCrLf & Mid(S, i, 1) End If Next i End If Next r MsgBox msg End Sub 

在这里输入图像说明

如果您希望一个字符MsgBox出现一次 ,请使用:

 Sub showspecials() Dim r As Range, rng As Range, msg As String Dim S As String, L As String, CH As String Dim i As Long, pat As String Set rng = Range("A1:B100") msg = "" pat = "[0-9a-zA-Z]" For Each r In rng S = r.Text L = Len(S) If L <> 0 Then For i = 1 To L CH = Mid(S, i, 1) If CH Like pat Then Else If InStr(msg, CH) = 0 Then msg = msg & vbCrLf & CH End If End If Next i End If Next r MsgBox msg End Sub