|
楼主 |
发表于 2019-10-22 16:28
|
显示全部楼层
我在你的基础上加了代码,你帮看看是不是这样
Sub JUKIIS排序()
Dim d As Object
Dim arr
Range("g:H").ClearContents
arr = [I2].CurrentRegion
Dim i&, j&, n&
For i = 1 To UBound(arr)
Set d = CreateObject("scripting.dictionary")
For j = 1 To UBound(arr, 2)
If arr(i, j) <> "" Then
d(arr(i, j)) = ""
End If
Next
Cells(i + 1, "g") = Join(d.keys, ".")
Cells(i + 1, "h") = d.Count
Set d = Nothing
Next
arr = Range("G2:G" & Cells(Rows.Count, "G").End(xlUp).Row)
Set reg = CreateObject("vbscript.regexp")
With reg
.Pattern = "\d+"
.Global = True
For i = 1 To UBound(arr)
If InStr(arr(i, 1), ".") Then
brr = Split(arr(i, 1), ".")
For j = 0 To UBound(brr) - 1
For k = j + 1 To UBound(brr)
br1 = Val(.Execute(brr(j))(0))
br2 = Val(.Execute(brr(k))(0))
If br1 > br2 Then
temp = brr(j)
brr(j) = brr(k)
brr(k) = temp
End If
Next
Next
arr(i, 1) = Join(brr, ".")
End If
Next
End With
[g2].Resize(UBound(arr), 1) = arr
MsgBox "OK!"
End Sub
|
|