做成自定义函数吧,这种数据格式应用还是挺多的:
- Sub NumOrder()
- Dim Arr, r&, i&, j&, p$
- r = [a6536].End(xlUp).Row
- Range("B2:B" & r).ClearContents: Arr = Range("A1:B" & r)
- For i = 2 To UBound(Arr)
- If Arr(i, 1) <> "" Then
- p = Arr(i, 1)
- Arr(i, 2) = Porder(p)
- End If
- Next
- Range("A1").Resize(UBound(Arr), UBound(Arr, 2)) = Arr
- End Sub
- Public Function Porder(p As String) As String
- Dim t&, Sr, s&, ps$
- p = Replace(p, " ", ""): p = Replace(p, ",", ","): p = Replace(p, "-", "-") '容错:有空格、大写统一转小写′
- If InStr(p, ",") = 0 Then p = p & ","
- Sr = Split(p, ",")
- For s = 0 To UBound(Sr)
- If InStr(Sr(s), "-") Then
- For t = Val(Split(Sr(s), "-")(0)) To Val(Split(Sr(s), "-")(1))
- If ps = "" Then ps = t Else ps = ps & "," & t
- Next
- Else
- If ps = "" Then ps = Sr(s) Else ps = ps & "," & Sr(s)
- End If
- Next
- Porder = ps
- End Function
复制代码
|