我一直在使用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
谢谢大家!
答案 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