从字符串中提取或者删除汉字是在我们日常使用Excel中时常遇到的问题,这里提供一个从网络上收集而来的提取或者删除汉字的自定义函数,方便大家日常使用。

‘—————————————————

‘功能:提取字符串中汉字或者非汉字

‘说明:Rg原字符串或单元格

‘Et为True时,提取汉字,否则为提取非汉字

:http://www.office26.com

‘—————————————————

FunctionExtractHanzi(RgAsVariant,_

OptionalEtAsBoolean=True)AsString

WithCreateObject("VBSCRIPT.REGEXP")

.Global=True

IfEtThen

.Pattern="[^u4e00-u9fa5]"

Else

.Pattern="[u4e00-u9fa5]"

EndIf

ExtractHanzi=.Replace(Rg,"")

EndWith

EndFunction

实际应用:

作为一个函数使用在工作表的公式中,如:单元格A1的值为"ExcelFans.com欢迎你",然后我们在A2中键入公式=ExtractHanzi(A1),显示结果为:欢迎你:

Office Excel 自定义函数实现提取汉字


把它用到其他的代码中,以下代码就是去除所选定区域中的所有汉字

‘—————————————————

‘功能:删除选定区域中所有汉字

:http://www.office26.com

‘—————————————————

SubDelAllHanzi()

DimRgAsRange,Rg1AsRange

DimxAddressAsString

OnErrorResumeNext

xAddress=ActiveSheet.UsedRange.Address

SetRg=Application.InputBox("请选择一个区域:","office26.com",xAddress,,,,,8)

IfRgIsNothingThenExitSub

SetRg=Application.Intersect(Rg,ActiveSheet.UsedRange)

IfRgIsNothingThenExitSub

ForEachRg1InRg

Rg1=ExtractHanzi(Rg1,False)

Next

EndSub

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注