emmwen 2024-03-06 18:03 采纳率: 0%
浏览 25

VBA筛选AutoFilter 匹配

#如A列为正常的手机号码,现在要筛选A列中符合类似157******17这种条件的,有什么办法

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-06 18:03
    关注

    引自免费微信小程序:皆我百晓生

    在VBA中,你可以使用AutoFilter方法结合通配符来筛选符合特定模式的数据。对于你的问题,要在A列中筛选出类似“157******17”这种格式(即前三位固定为157,最后两位任意数字)的手机号码,可以按照以下步骤编写代码:

    Sub FilterPhoneNumber()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Sheets("Sheet1") ' 替换 "Sheet1" 为实际需要操作的工作表名称
    
        With ws.Range("A1:A" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row) ' 定义A列数据范围
            .AutoFilter Field:=1, Criteria1:="=157*****17" ' 使用通配符筛选
        End With
    End Sub
    

    上述代码首先定义了要筛选的工作表和A列数据范围,并通过AutoFilter方法对第一列(即A列)应用筛选条件,其中Criteria1:="=157*****17"就是利用通配符匹配你所需要的手机号码格式。

    需要注意的是,Excel的AutoFilter并不支持中间连续多个星号(*)的精确匹配,它会将单个星号视为匹配任意单个字符。因此上述代码可能无法直接筛选出中间四位数不确定,但首尾数字确定的电话号码。如果你确实需要这样的筛选功能,可能需要采用自定义函数配合查找或循环遍历的方式来实现。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月6日