正则表达式似乎在Word中应用会更多一些,在Excel中使用正则,可以减少代码量,在解决个例问题时,也十分的好用。
使用方法:
'新建一个Excel工作簿,在任意工作表标签右键单击【查看代码】,
'单击【插入】-【模块】,登录微信网页版,将代码cp到模块中,
'将工作簿另存为.xlsm格式即可。
注意:代码中绿颜色部分均为注释,这些代码不会运行,也可不用输入。当然最前面的注释符'一定得是半角字符。
Option Explicit
'************************************************************************
'author:ykk *
'功能:提取给定字符串(单元格)中汉字与非汉字集 *
'参数说明:rng 原字符串或单元格 *
' hz 为True时,提取汉字(默认),否则提取非汉字。*
'******************************** ***************************************
Function Hanzi(rng, Optional hz As Boolean = True) As String
With CreateObject('VBSCRIPT.REGEXP')
.Global = True
'第二个参数为真时
If hz Then
.Pattern = '[^\u4e00-\u9fa5]'
Else '第二个参数不为真时
.Pattern = '[\u4e00-\u9fa5]'
End If
Hanzi = .Replace(rng, '')
End With
End Function
看图吧,来得直观。
两个公式是等价的,即第二个参数可省略不写,默认为true
=Hanzi(A2)
=Hanzi(A2,)
两个公式是等价的,即0也可以用false替换
=Hanzi(A2,0)
=Hanzi(A2,FALSE)
联系客服