2017-09-14 98 views
0

我一直在Excel数据表中工作,并且需要自动删除列中的字母。只允许数字字符VBA

这是我已经试过:

Sub SacaLetras() 

    Dim RE As Object 
    Set RE = CreateObject("VBScript.RegExp") 
    RE.IgnoreCase = True 
    RE.Global = True 
    RE.Pattern = [a-z] 
    For Each RE In Worksheets("Candidatos").Range("P") 
    Cells.Replace(RE,"0") 
    Next RE 
End Sub 

谢谢大家!

+0

这是什么原因导致错误? –

+0

语法错误,它说 –

+0

什么行是错误? –

回答

2

使用此

该模式需要是一个字符串,把它放在引号。

不迭代整列。

当你迭代你需要把它放在一个范围对象而不是正则表达式对象。

你需要告诉vba在哪里把新的价值。我正在覆盖单元格本身:

Sub SacaLetras() 

    Dim RE As Object 
    Dim cell As Range 
    Set RE = CreateObject("VBScript.RegExp") 
    RE.IgnoreCase = True 
    RE.Global = True 
    RE.Pattern = "[a-z]" 
    For Each cell In Intersect(Worksheets("Candidatos").Range("P:P"), Worksheets("Candidatos").UsedRange) 
     cell.Value = RE.Replace(cell.Value, "0") 
    Next cell 
End Sub 
+0

它的工作!真棒! TKS –