利用正则表达式在EXCEL中查找/替换

2017年08月29日 2.45k 次阅读 1 条评论 0 人点赞
有时需要对EXCEL中的有一定规律,但不相同的字符串进行替换,这时用基本的EXCEL查找/替换功能就无法实现了。比如希望将下图中的序列号(数字.)替换为空字符串,该如何实现呢? ALT+F11 打开VB窗口模式
Private Sub RegExp_Replace()

    Dim RegExp As Object
    Dim SearchRange As Range, Cell As Range
    
    '此处定义正则表达式
    Set RegExp = CreateObject("vbscript.regexp")
    RegExp.Pattern = ",[\u4e00-\u9fa5]{5}TO[0-9]{18}"
     
    '此处指定查找范围
    Set SearchRange = ActiveSheet.Range("A1:A99")
    
    '遍历查找范围内的单元格
    For Each Cell In SearchRange
        Set Matches = RegExp.Execute(Cell.Value)
        If Matches.Count >= 1 Then
            Set Match = Matches(0)
            Cell.Value = RegExp.Replace(Cell.Value, "")
        End If
    Next

End Sub
 

作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。

文章评论(1

  • 阳阳博主

    这条正则匹配特殊字符串 RegExp.Pattern = "\s[A-Za-z0-9]{0,16}[-|?|@|=|(|)|$|#|/|.|~|!|+|_][A-Za-z0-9]{0,16}"

    #12017-08-31 16:24
  • 接收回复邮件通知