我确实没有vba经验,我依赖于古老的 Java 知识
我有以下格式的数据,我想提取 001-222-170 组件(从第 1 行等)
TEXT,TEXT,TEXT,001-222-170,TEXT
LINER,612-942-001,TEXT
TEXT,TEXT17,612-551-001,TEXT
SHOE,435-687-204,TEXT
TEXT,ASSY,O.B,632-005-202,TEXT
TEXT,TEXT,I.B,632-012-202,TEXT
经过广泛的研究,我知道你必须建立一个.pattern
认可。我最接近的东西是
Sub RegEx()
Dim RegEx As Object
Dim strTest As String
Dim valid As Boolean
Dim Matches As Object
Dim i As Integer
Set RegEx = CreateObject("VBScript.RegExp")
'What I happen to be looking for
RegEx.Pattern = "MT\d{6}V\d"
For i = 2 To 115
Range("B" & i).Activate
strTest = ActiveCell.Text
valid = RegEx.test(strTest)
If valid = True Then
Set Matches = RegEx.Execute(strTest)
Range("C" & i).Value = CStr(Matches(0))
Else
Range("C" & i).Value = "#N/A#"
End If
Next
Set RegEx = Nothing
End Sub
但它仍然不能解决问题,而且我知道有一种更短的方法可以做到这一点。我只是不知道如何格式化模式线。像 ("(\d)"-"(\d)"-"(\d)")
什么?