閱: 4808 | 回: 1
等級:初學(xué)者
-
積分:0
-
財富值:0.00
-
身份:普通用戶
利用正則表達式提取或刪除漢字
在日常的工作應(yīng)用中,我們經(jīng)常與漢字打交道,下面這個自定義函數(shù)的功能,就是提取與刪除字符串或單元格中漢字的自定義函數(shù):
Function Hanzi(rng, Optional pd As Boolean = True) As String
'*******************************************
'時間:2010-09-28
'功能:提取給定字符串(單元格)中漢字與非漢字集
'說明:rng 原字符串或單元格
' pd 當(dāng)為True時,提取漢字(默認),否則提取非漢字。
'發(fā)布: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
應(yīng)用示例:設(shè)A1里的值為 excel吧 - bengdeng 歡迎您!2010年9月28日
在B1設(shè)定公式:=Hanzi(A1)
結(jié)果為:吧歡迎您年月日
在C1設(shè)定公式::=Hanzi(A1,0)
結(jié)果為:excel - bengdeng !2010928
除此,也可以利用到其它的程序中,如下面這段程序是去除當(dāng)前工作表中所有的漢字:
Sub 去除當(dāng)前工作表中的漢字()
Dim tRan As Range
Application.ScreenUpdating = False
For Each tRan In ActiveSheet.UsedRange
tRan = Hanzi(tRan, 0)
Next
Application.ScreenUpdating = True
End Sub
在日常的工作應(yīng)用中,我們經(jīng)常與漢字打交道,下面這個自定義函數(shù)的功能,就是提取與刪除字符串或單元格中漢字的自定義函數(shù):
Function Hanzi(rng, Optional pd As Boolean = True) As String
'*******************************************
'時間:2010-09-28
'功能:提取給定字符串(單元格)中漢字與非漢字集
'說明:rng 原字符串或單元格
' pd 當(dāng)為True時,提取漢字(默認),否則提取非漢字。
'發(fā)布: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
應(yīng)用示例:設(shè)A1里的值為 excel吧 - bengdeng 歡迎您!2010年9月28日
在B1設(shè)定公式:=Hanzi(A1)
結(jié)果為:吧歡迎您年月日
在C1設(shè)定公式::=Hanzi(A1,0)
結(jié)果為:excel - bengdeng !2010928
除此,也可以利用到其它的程序中,如下面這段程序是去除當(dāng)前工作表中所有的漢字:
Sub 去除當(dāng)前工作表中的漢字()
Dim tRan As Range
Application.ScreenUpdating = False
For Each tRan In ActiveSheet.UsedRange
tRan = Hanzi(tRan, 0)
Next
Application.ScreenUpdating = True
End Sub
我的個性簽名
等級:學(xué)者