我是 RegEx 的新手,我似乎无法弄清楚为什么这不起作用。我让它工作但丢失了我的数据。我已经尝试了各种变化,但我不记得我之前做了什么来让它工作。
我有以下变化的字段
“ SB123 ”
“一些数据 SB 1234 ”
“一些数据 SB 1234567 和更多数据”
“ SB1234. ”等...
我想提取的是 SB 和数字部分。有人可以帮忙吗?
Sub ExtractSBData()
Dim regEx
Dim i As Long
Dim pattern As String
Set regEx = CreateObject("VBScript.RegExp")
regEx.IgnoreCase = True
regEx.Global = True
regEx.pattern = ".*(SB\s*\d{3}\d+).*"
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If (regEx.test(Cells(i, 14).value)) Then
Cells(i, 16).value = regEx.Replace(Cells(i, 14).value, "$1")
End If
Next i
End Sub
抱歉,我意识到我没有解释它目前在做什么。目前它只有在分组被数据包围时才有效(即“这里的数据 SB123 和这里的数据,但不是“这里的 SB123 数据”或“这里的数据 SB123 ”)。此外,它将整行放在单元格中(i,16 ) 而不仅仅是 SB 编号部分。