excel中用正则匹配_Excel利用正则表达式匹配和替换内容

近期使用Excel比较多,有一些匹配和替换的内容。平常涉及的比较简单,也就使用If或者VLOOKUP之类的函数。这次使用到正则表达式和VBA,在此记录一下,以防忘记。

打开文件一定要选择EXCEL打开,按住ALT+F11,右键文件选择“查看代码”,输入代码:

Private Sub RegExp_Replace()

Dim RegExp As Object

Dim SearchRange As Range, Cell As Range

'此处定义正则表达式

Set RegExp = CreateObject("vbscript.regexp")

RegExp.Pattern = "^[A-Za-z0-9]+(\-)?[0-9]?$"

#此处匹配所有以字母或数字开头的单元格(比如A01,或者A01-1)

'此处指定查找范围

Set SearchRange = ActiveSheet.Range("A3:A1008")

'遍历查找范围内的单元格

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, "16S")

#此处将单元格的内容完全替换成16S

End If

Next

End Sub

你可能感兴趣的:(excel中用正则匹配)