分享

自定义函数之提取汉字 | ExcelFans

 JT_man 2016-11-04

自定义函数之提取汉字

2015年09月13日 ? Excel 杂记 ? 共 1106字 ? 字号 ? 暂无评论 ? 阅读 973 次
本文非原创,属网络收集
 

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

   
'---------------------------------------------------
'功能:提取字符串中汉字或者非汉字
'说明:Rg  原字符串或单元格
'      Et  为True时,提取汉字,否则为提取非汉字
'发布:http://www.
'---------------------------------------------------
Function ExtractHanzi(Rg As Variant, _
                      Optional Et As Boolean = True) As String
    With CreateObject("VBSCRIPT.REGEXP")
        .Global = True
        If Et Then
            .Pattern = "[^\u4e00-\u9fa5]"
        Else
            .Pattern = "[\u4e00-\u9fa5]"
        End If
        ExtractHanzi = .Replace(Rg, "")
    End With
End Function
    

实际应用:

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

001

  • 把它用到其他的代码中,以下代码就是去除所选定区域中的所有汉字
'---------------------------------------------------
'功能:删除选定区域中所有汉字
'发布:http://www.
'---------------------------------------------------
Sub DelAllHanzi()
    Dim Rg As Range, Rg1 As Range
    Dim xAddress As String
    On Error Resume Next
    xAddress = ActiveSheet.UsedRange.Address
    Set Rg = Application.InputBox("请选择一个区域:", "ExcelFans.com", xAddress, , , , , 8)
    If Rg Is Nothing Then Exit Sub
    Set Rg = Application.Intersect(Rg, ActiveSheet.UsedRange)
    If Rg Is Nothing Then Exit Sub
    For Each Rg1 In Rg
        Rg1 = ExtractHanzi(Rg1, False)
    Next
End Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多