EXCEL扩展API使用手册

EXCEL扩展API使用手册

一、使用说明:

1、 打开EXCEL。
2、 右键点击SHEET1,选择“查看代码”,如下图
在这里插入图片描述
3、 点击“工具栏”中的“模块”,如下图:
在这里插入图片描述
4、 点击左侧“模块1”,打开后,将API代码粘贴至“模块1”内。
在这里插入图片描述

二、API代码:

Function FIND_LIST(find_str, list)
    For Each mylist In list
        If InStr(find_str, mylist) > 0 Then
            FIND_LIST = mylist
            Debug.Print mylist
            Exit Function
        End If
    Next mylist
End Function
'超级清洗字符串函数
Function SUCLEAN(cell_text As Range, clean_str As String)
    Debug.Print clean_str
    Dim Cleaned As String
    Select Case clean_str
        Case "汉字"
            Cleaned = CleanRegExpStr(cell_text, "[\u4e00-\u9fa5]", True, True)
        Case "数字"
            Cleaned = CleanRegExpStr(cell_text, "[0-9]", True, True)
        Case "字母"
            Cleaned = CleanRegExpStr(cell_text, "[a-zA-Z]", True, True)
        Case "特殊字符"
            Cleaned = CleanRegExpStr(cell_text, "[^%&',;=?${}<>\x22]", True, True)
        Case Else
            Cleaned = CleanRegExpStr(cell_text, clean_str, True, True)
    End Select
    SUCLEAN = Cleaned
End Function
'超级挑捡字符串函数
Function SUPICK(cell_text As Range, pick_str As String)
    Debug.Print pick_str
    Dim Picked As String
    Select Case pick_str
        Case "汉字"
            Picked = PickRegExpStr(cell_text, "[\u4e00-\u9fa5]", True, True)
        Case "数字"
            Picked = PickRegExpStr(cell_text, "[0-9]", True, True)
        Case "字母"
            Picked = PickRegExpStr(cell_text, "[a-zA-Z]", True, True)
        Case "手机号"
            Picked = PickRegExpStr(cell_text, "(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}", True, True)
        Case "邮箱"
            Picked = PickRegExpStr(cell_text, "[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?", True, True)
        Case "身份证号"
            Picked = PickRegExpStr(cell_text, "\d{15}|\d{18}", True, True)
        Case "网址"
            Picked = PickRegExpStr(cell_text, "[a-zA-z]+://[\w!#$%&'*+/=?._-]*", True, True)
        Case Else
            Picked = PickRegExpStr(cell_text, pick_str, True, True)
    End Select
    SUPICK = Picked
End Function
Function CleanRegExpStr(TargetRange As Range, myPattern As String, myGlobal As Boolean, myIgnoreCase As Boolean) As String
    Dim mRegExp As Object       '正则表达式对象
    Dim mMatches As Object      '匹配字符串集合对象
    Dim mMatch As Object        '匹配字符串
    Dim mReplace As String      '替换后的字符串
    
    mReplace = TargetRange.Text
    Debug.Print mReplace
    Set mRegExp = CreateObject("Vbscript.Regexp")
    With mRegExp
        .Global = myGlobal                              'True表示匹配所有, False表示仅匹配第一个符合项
        .IgnoreCase = myIgnoreCase                          'True表示不区分大小写, False表示区分大小写
        .Pattern = myPattern          '"([0-9])?[.]([0-9])+|([0-9])+ 匹配字符模式
        Set mMatches = .Execute(TargetRange.Text)   '执行正则查找,返回所有匹配结果的集合,若未找到,则为空
        For Each mMatch In mMatches
            Debug.Print mMatch
            mReplace = Replace(mReplace, mMatch, "")
            Debug.Print "mReplace:" & mReplace
        Next
        
    End With
    Set mRegExp = Nothing
    Set mMatches = Nothing
    Debug.Print "CLEAN_RESULT:" & mReplace
    CleanRegExpStr = mReplace
End Function
Function PickRegExpStr(TargetRange As Range, myPattern As String, myGlobal As Boolean, myIgnoreCase As Boolean) As String
    Dim mRegExp As Object       '正则表达式对象
    Dim mMatches As Object      '匹配字符串集合对象
    Dim mMatch As Object        '匹配字符串
    Dim mReplace As String      '替换后的字符串
    
    mPick = ""
    Set mRegExp = CreateObject("Vbscript.Regexp")
    With mRegExp
        .Global = myGlobal                              'True表示匹配所有, False表示仅匹配第一个符合项
        .IgnoreCase = myIgnoreCase                          'True表示不区分大小写, False表示区分大小写
        .Pattern = myPattern          '"([0-9])?[.]([0-9])+|([0-9])+ 匹配字符模式
        Set mMatches = .Execute(TargetRange.Text)   '执行正则查找,返回所有匹配结果的集合,若未找到,则为空
        For Each mMatch In mMatches
            Debug.Print mMatch
            mPick = mPick & mMatch
            Debug.Print "mPick:" & mPick
        Next
        
    End With
    Set mRegExp = Nothing
    Set mMatches = Nothing
    Debug.Print "PICK_RESULT:" & mPick
    PickRegExpStr = mPick
End Function


三、函数使用说明:

1、 FIND_LIST函数
功能:列表匹配单元格并返回匹配成功的结果。
=FIND_LIST(FIND_STR, LIST)
FIND_STR:单元格 如:C6
LIST:待匹配列表 如:F6:F8
例:
在这里插入图片描述
2、 SUCLEAN函数
功能:清洗单元格内指定的内容
=SUCLEAN(CELL_TEXT,CLEAN_STR)
CELL_TEXT: 单元格 如:C2
CLEAN_STR: 清洗指令 如:汉字、数字、字母、特殊字符、正则表达式
例:
在这里插入图片描述
3、 SUPICK函数
功能:挑拣单元格内指定的内容
=SUPICK(CELL_TEXT,PICK_STR)
CELL_TEXT: 单元格 如:C2
PICK_STR: 清洗指令 如:汉字、数字、字母、手机号、邮箱、身份证号、网址、正则表达式
例:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天若有情(爱笑妍)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值