`
阅: 3030 | 回: 1
发表于2015/10/27 12:43:35 楼主 
头像 等级:初学者
积分:0
财富值:0.0
身份:普通用户
利用正则表达式提取或删除汉字

在日常的工作应用中,我们经常与汉字打交道,下面这个自定义函数的功能,就是提取与删除字符串或单元格中汉字的自定义函数:
Function Hanzi(rng, Optional pd As Boolean = True) As String
'*******************************************
'时间:2010-09-28
'功能:提取给定字符串(单元格)中汉字与非汉字集
'说明:rng  原字符串或单元格
'      pd   当为True时,提取汉字(默认),否则提取非汉字。
'发布:http://www.excelba.com
'******************************** ***********
With CreateObject("VBSCRIPT.REGEXP")
    .Global = True
    If pd Then
        .Pattern = "[^\u4e00-\u9fa5]"
    Else
        .Pattern = "[\u4e00-\u9fa5]"
    End If
    Hanzi = .Replace(rng, "")
End With
End Function
应用示例:设A1里的值为 excel吧 - bengdeng 欢迎您!2010年9月28日
在B1设定公式:=Hanzi(A1)
结果为:吧欢迎您年月日
在C1设定公式::=Hanzi(A1,0)
结果为:excel - bengdeng !2010928
除此,也可以利用到其它的程序中,如下面这段程序是去除当前工作表中所有的汉字:
Sub 去除当前工作表中的汉字()
Dim tRan As Range
Application.ScreenUpdating = False
For Each tRan In ActiveSheet.UsedRange
    tRan = Hanzi(tRan, 0)
Next
Application.ScreenUpdating = True
End Sub

我的个性签名
发表于 2016/11/21 16:15:15   
头像 等级:学者
积分:53
财富值:5
身份:普通用户
看看
我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。