|
借用上楼附件:正则处理(单位的规则不清,以第一个为准)
- Sub JuSTTEST()
- Dim Arr, i&, ArrR()
- Arr = Range([f4], Cells(Rows.Count, "f").End(3)).Value
- ReDim ArrR(1 To UBound(Arr), 1 To 3)
- With CreateObject("vbscript.regexp")
- .Global = True
- .ignorecase = True
- For i = 1 To UBound(Arr)
- .Pattern = "(.+(ml|l|kg|g)[))]*\*)(.+))"
- If .test(Arr(i, 1)) Then
- Arr(i, 1) = .Replace(Arr(i, 1), "$3")
- .Pattern = "[^0-9*]+"
- If .test(Arr(i, 1)) Then
- ArrR(i, 2) = .Replace(Arr(i, 1), "")
- If InStr(1, ArrR(i, 2), "*") Then
- ArrR(i, 1) = Application.Evaluate("=" & ArrR(i, 2))
- Else
- ArrR(i, 1) = ArrR(i, 2)
- ArrR(i, 2) = ""
- End If
- End If
- .Pattern = "[0-9*]+"
- If .test(Arr(i, 1)) Then
- ArrR(i, 3) = Mid(.Replace(Arr(i, 1), ""), 1, 1)
- End If
- End If
- Next i
- End With
- Range("h4:j" & Rows.Count).ClearContents
- Range("h4").Resize(i - 1, 3) = ArrR
- End Sub
复制代码
根据条件拆分数据(VBA).rar
(16.7 KB, 下载次数: 6)
|
|