2015-11-02 75 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