2015-11-02 53 views
-4

我需要一个Excel VB脚本来从单元格中删除所有字母a-z A-z和()。删除字母的脚本

我想保留所有数字和句点(。)。

例如SDF dsfsd DFS SD(DFD)))SDF 2.1毫克UF摹将成为2.1

这是我有,但它是不工作:

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 
+0

你一直在这里已经足够长,知道你需要表现出努力。 – findwindow

+0

例如SDF dsfsd DFS SD(DFD)))SDF 2.1毫克UF克将成为2.1 –

+0

功能strClean(strtoclean) 昏暗objRegExp,outputStr 集objRegExp =新的正则表达式 objRegExp.IgnoreCase =真 objRegExp.Global =真 objRegExp.Pattern = “(([A-ZA-Z]))+” outputStr = objRegExp.Replace(strtoclean, “ - ”) objRegExp.Pattern = “\ - +” outputStr = objRegExp.Replace(输出str,“ - ”) strClean = outputStr End Function –

回答

0

试试这个:

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