除了某些字符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