Excel VBA 8.24 批量提取英文,区分大小写,你还是需要正则
批量提取单元格中的中文 呼叫正则
点击上方“Excel和VBA”,选择“置顶公众号”
致力于原创分享Excel的相关知识,源码,源文件打包提供
一起学习,一起进步~~
今天我们继续学习单元格部分内容的提取,今天我们要学习的是提取出单元格中英文,前面学习了中文,数字的提取,今天我们来学习英文的提取
场景说明
我们还是结合实际的场景来看看,还是使用上节我们使用的案例
从案例中,我们可以看到,除去前面两个单元格是没有英文的之外,其他的单元格内都有英文,并且有大小写的分别,我们如何将他们都提取出来呢?
代码区
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中也是如此,比较常用的就是单元格内容的提取和拆分,我们这几天分享的提取功能,其实也就是正则的拆分功能。
接下来我们会深入讲解一些更加复杂一点的正则运用,能够提取/拆分出一些更加复杂,有比较常用的信息。
赞 (0)