分享

Excel-VBA自定义函数分离字符串中的数值英文和汉字

 L罗乐 2017-11-12

应用场景

返回单元格字符中的数值、字母、汉字


知识要点

1:CreateObject('VBSCRIPT.REGEXP')正则表达式:又称规则表达式,计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本




声明自定义函数取值,第一个参数是单元格或者字符串,第二参数用于指定取值的类型,包括-hz\ hz\-zm\ zm\-sz\ sz  6个选项

rng 表示单元格引用,types参数用于控制英文、数字和汉字,如果忽略第二参数,表示取数值

Function 取值(Rng, Optional Types As String = ' sz') As String

    With CreateObject('VBSCRIPT.REGEXP') '引用正则表达式

        .Global = True '全局变量

        '指定搜索条件,如是第二参数左边有 “-”,那么取反(即去除指定的对象),否则提取指定的对象

        '如果第二参数包括hz,那么计算对象的范围是,代表所有汉字,如果是sz,对象范围0-9代表所有数组,否则计算对象为字母,范围a-zA-Z

        .Pattern = '[' & IIf(Left(Types, 1) = '-', '', '^') & IIf(Right(Types, 2) = 'hz', '一-隝]', IIf(Right(Types, 2) = 'sz', '0-9]', 'a-zA-Z]'))

        取值 = .Replace(Rng, '') '替换掉不需要的字符

    End With

End Function


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多