??今日咱们持续学习单元格有些内容的获取,今日咱们要学习的是获取出单元格中英文,前面学习了中文,数字的获取,今日咱们来学习英文的获取
场景阐明
咱们仍是联

??今日咱们持续学习单元格有些内容的获取,今日咱们要学习的是获取出单元格中英文,前面学习了中文,数字的获取,今日咱们来学习英文的获取
场景阐明
咱们仍是联系实践的场景来看看,仍是运用上节咱们运用的事例
从事例中,咱们可以看到,除去前面两个单元格是没有英文的之外,其他的单元格内都有英文,而且有巨细写的别离,咱们如何将他们都获取出来呢?
代码区
Sub allenglish()
Dim rng As Range, a As Range
Set rng = Application.InputBox("请选择单元格区域", "获取单元格的中文", , , , , , 8)
For Each a In rng
MyStr = a.Value
ResultStr = ""
With CreateObject("VBSCRIPT.REGEXP")
.Pattern = "[a-zA-Z]"
.IgnoreCase = True
.Global = True
If .test(MyStr) Then
For Each Item In .Execute(MyStr)
ResultStr = ResultStr & Item
Next Item
a.Offset(0, 1) = ResultStr
End If
End With
Next a
End Sub
一看到代码就晓得,咱们今日运用的办法仍是正则,不错,单元格内容的获取,最健壮的办法是正则
作用也对错常的显着,成功的获取出了英文字母,避开了一切的中文,数字等符号的烦扰。
代码解析
其实今日的代码,我们大约是可以独立看理解的,因为今日的中心,只是是替换了一句代码,就是正则表达式
.Pattern = "[a-zA-Z]"
经过这段代码,咱们就可以成功的将一切的英文,不区别巨细写的来获取了。非常的便利,
有没有感触正则表达式其真实VBA中的运用非常的广泛?
没错,正则表达式在python,JAVA等编程言语中有非常管广泛的运用,相同在VBA中也是如此,比照常用的就是单元格内容的获取和拆分,咱们这几天共享的获取功用,其实也就是正则的拆分功用。
接下来咱们会深化说明一些愈加凌乱一点的正则运用,可以获取/拆分出一些愈加凌乱,有比照常用的信息