删除单元格中的字符

此公式除去数字除外:

Sub qwerty() For Each r In Selection vout = "" v = r.Text n = Len(v) For i = 1 To n ch = Mid(v, i, 1) If ch Like "[0-9]" Then vout = vout & ch End If Next i r.Value = vout Next r End Sub 

我怎样才能修改它,以便保持数字和小数点?

包括. ,把它包含在你的Likeexpression式中

 If ch Like "[0-9.]" Then 

最好使用正则Regexp不是通过初始化范围循环慢慢循环逐个字符:

 Sub Quicker() Dim X Dim ObjRegex As Object Dim lngRow As Long Dim lngCOl As Long Set ObjRegex = CreateObject("vbscript.regexp") ObjRegex.Global = True ObjRegex.Pattern = "[^0-9/.]" X = Selection.Value2 For lngRow = 1 To UBound(X, 1) For lngCOl = 1 To UBound(X, 2) X(lngRow, lngCOl) = ObjRegex.Replace(X(lngRow, lngCOl), vbNullString) Next Next Selection.Value2 = X End Sub