仅允许使用数字字符VBA

时间:2017-09-14 21:28:22

标签: regex vba excel-vba excel

我一直在使用excel数据表,需要自动删除列中的字母。

这是我尝试过的:

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

谢谢大家!

1 个答案:

答案 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