Dim d As Object Sub main() Set d = CreateObject("scripting.dictionary") With Sheet1 .Range("c1").CurrentRegion = "" ar = .Range("a1").CurrentRegion For x = 1 To UBound(ar) s = ar(x, 1) If InStr(s, ",") > 0 Then s = Replace(s, ",", ",") sp = Split(s, ",") For i = 2 To UBound(sp) ar_res = split_by_rege(sp(i)) If Not d.exists(ar_res(0)) Then d(ar_res(0)) = ar_res(1) Else k = d(ar_res(0)) k = k & "," & ar_res(1) d(ar_res(0)) = k End If Next Next r = 1 .Range("c1").Resize(1, 3) = Array("品种", "数量", "备注") For Each a In d.keys r = r + 1 .Cells(r, 3) = a .Cells(r, 4) = second_split(d(a)) If InStr(a, "鱼") > 0 Then .Cells(r, 5) = Replace(d(a), ",", "+") Next .Range("c1").CurrentRegion.Borders.LineStyle = 0 .Range("c1").CurrentRegion.Borders.LineStyle = 1 .Cells.Interior.ColorIndex = 0 For j = 1 To r If j Mod 2 = 1 Then .Range(Cells(j, 3), Cells(j, 5)).Interior.ColorIndex = 34 Next End With Set d = Nothing End Sub Function second_split(s) If InStr(s, ",") > 0 Then spl = Split(s, ",") For x = 0 To UBound(spl) tem_res = split_by_rege3(spl(x)) tem = tem + tem_res(0) * 1 Next second_split = tem & tem_res(1) Else second_split = s End If End Function Function split_by_rege2(s) With CreateObject("vbscript.regexp") .Pattern = "(\d*\.?\d*)([一-龥]+)" .Global = True .IgnoreCase = True .MultiLine = False Set mh = .Execute(s) s1 = mh(0).SubMatches(0) s2 = Replace(s, s1, "") End With split_by_rege2 = Array(s1, s2) End Function Function split_by_rege3(s) With CreateObject("vbscript.regexp") .Pattern = "(\d*\.?\d*)([一-龥]+)" .Global = True .IgnoreCase = True .MultiLine = False Set ma = .Execute(s) s1 = ma(0).SubMatches(0) s2 = ma(0).SubMatches(1) End With split_by_rege3 = Array(s1, s2) End Function Function split_by_rege(s) With CreateObject("vbscript.regexp") .Pattern = "([一-龥]+)|(\d*\.?\d*(斤|条))" .Global = True .IgnoreCase = True .MultiLine = False Set mh = .Execute(s) s1 = mh(0).SubMatches(0) s2 = mh(1).SubMatches(1) End With split_by_rege = Array(s1, s2) End Function
标签:Function,End,res,s1,分类,正则,ar,split,统计 From: https://www.cnblogs.com/eyunkeji/p/17192097.html