每日Excel分享(VBA)| 正则表达式在Excel VBA中的应用
Posted 我的Excel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日Excel分享(VBA)| 正则表达式在Excel VBA中的应用相关的知识,希望对你有一定的参考价值。
感
谢
感谢每一个朋友的关注与支持,感谢所有的不离不弃,一路同行!
关
注
导读
前两天分享了一篇关于VBA与正则表达式的文章,里面写了如何利用VBA与正则表达式去除字符串中除中文之外的其他字符,只保留中文。
这两天有朋友问我如果要只保留数字或只保留字母该怎么办?所以今天村长再来补充一下其他正则表达式在VBA中的应用。
按ALT+F11弹出VBE窗口,然后新建模块,如下图:
只保留中文的代码如下:
Function ZW(i As String) As String
Dim a As Object
Set a = CreateObject("VBSCRIPT.REGEXP")
a.Pattern = "[^\u4e00-\u9fa5]"
a.IgnoreCase = True
a.Global = True
ZW = a.Replace(i, "")
Set a = Nothing
End Function
只保留数字的代码如下:
Function SZ(i As String) As String
Dim a As Object
Set a = CreateObject("VBSCRIPT.REGEXP")
a.Pattern = "[^0-9]"
a.IgnoreCase = True
a.Global = True
SZ = a.Replace(i, "")
Set a = Nothing
End Function
只保留字母的代码如下:
Function ZM(i As String) As String
Dim a As Object
Set a = CreateObject("VBSCRIPT.REGEXP")
a.Pattern = "[^A-Z^a-z]"
a.IgnoreCase = True
a.Global = True
ZM = a.Replace(i, "")
Set a = Nothing
End Function
只保留数字和字母的代码如下:
Function SZZM(i As String) As String
Dim a As Object
Set a = CreateObject("VBSCRIPT.REGEXP")
a.Pattern = "[^A-Z^a-z^0-9]"
a.IgnoreCase = True
a.Global = True
SZZM = a.Replace(i, "")
Set a = Nothing
End Function
保存完代码之后我们回到表格里面,在单元格输入我们刚才写的自定义函数,如下图:
坚持!坚持!再坚持!
致各位亲
每日一歌
羽泉《冷酷到底》
以上是关于每日Excel分享(VBA)| 正则表达式在Excel VBA中的应用的主要内容,如果未能解决你的问题,请参考以下文章
一个可以使用多个正则表达式进行多次尝试匹配,并进行替换的Excel VBA自定义函数(UFD)