Script to remove letters

2019-09-22 08:25发布

I need an Excel VB script to remove all letter a-z A-z and () from cell.

I want to keep all numbers and periods (.).

For example SDF dsfsd dfS SD ( dfd ))) sdf 2.1 mg uf g will become 2.1

This is what I have but it is not working:

Function strClean(strtoclean)
Dim objRegExp, outputStr
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "(([0-9]).)"
outputStr = objRegExp.Replace(strtoclean, "-")
objRegExp.Pattern = "\-+"
outputStr = objRegExp.Replace(outputStr, "-")
strClean = outputStr
End Function

1条回答
啃猪蹄的小仙女
2楼-- · 2019-09-22 09:21

Try this:

Sub Remove_Alpha(rCll As Range)
Dim sCll As String, i As Integer
    sCll = rCll.Value2
    sCll = WorksheetFunction.Clean(sCll)
    For i = 1 To 255
        Select Case i
        Case 46, 48 To 57
        Case Else
            sCll = WorksheetFunction.Substitute(sCll, Chr(i), "")
        End Select
    Next
    rCll.Value = sCll
End Sub
查看更多
登录 后发表回答