当前位置: 主页 > Office办公 > Excel专区 > Excel函数 > excel 自定义函数实现提取汉字

excel 自定义函数实现提取汉字

  • 2022-01-15
  • 来源/作者: 菜鸟图库/ 菜鸟图库
  • 364 次浏览

 从字符串中提取或者删除汉字是在我们日常使用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),显示结果为:欢迎你:

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