我需要一些关于如何使用正则表达式来删除特殊字符(例如分数,指数,度数符号和字符串中的任何其他非正常字母)的指示。我知道下面的代码根据这些标准查找字符串,但它是否包含所有unicode字符?
代码注意事项:
Dim strPattern As String: strPattern = "[^\u0000-\u007F]"
Dim regEx As Object
Set regEx = CreateObject("VBScript.RegExp")
regEx.Global = True
regEx.IgnoreCase = True
regEx.Pattern = strPattern
For Each cell In ActiveSheet.Range("C:C") ' Define your own range here
If strPattern <> "" Then ' If the cell is not empty
If regEx.Test(cell.Value) Then ' Check if there is a match
cell.Interior.ColorIndex = 6 ' If yes, change the background color
End If
End If
Next
答案 0 :(得分:0)
这不使用正则表达式。
有许多潜在的“坏”角色。而不是试图删除它们, 保持“好”的。
选择一些单元格并运行这个短宏:
Sub UniKiller()
Dim s As String, temp As String, i As Long
Dim C As String
s = ActiveCell.Value
If s = "" Then Exit Sub
temp = ""
For i = 1 To Len(s)
C = Mid(s, i, 1)
If AscW(C) > 31 And AscW(C) < 127 Then
temp = temp & C
End If
Next i
ActiveCell.Value = temp
End Sub
如果您需要“清理”多个单元格,请将逻辑放在一个循环中。