返回列表 上一主題 發帖

[發問] VBA 請問字數+字母排序怎麼做

  1. Sub tt()
  2. Dim Arr, Brr, n&
  3. n = [A65536].End(xlUp).Row
  4. With [B2].Resize(n - 1)
  5.     .Formula = "=LEN(A2)"
  6.     .Value = .Value
  7. End With

  8. With Range([A1], [B65536].End(xlUp))
  9.     Brr = .Value
  10.     .Sort Key1:=.Item(2), Order1:=xlAscending, Header:=xlYes
  11.     Arr = .Value
  12.     .Value = Brr
  13. End With

  14. [d1].Resize(UBound(Arr)) = Arr
  15. Range("B2:B" & n) = ""
  16. End Sub
複製代碼

TOP

回復 14# s13030029

借用准大修改如下
Sub TEST()
Dim R&, Arr, LN&
R = Cells(Rows.Count, 1).End(xlUp).Row
If R < 3 Then Exit Sub
With Range("A2:A" & R)
    Arr = .Value
    For i = 1 To .Count
        ipos = InStr(5, Arr(i, 1), "-")
        If ipos > o Then
            xR = Mid(Arr(i, 1), 1, ipos - 1)
            Arr(i, 1) = 100 + IIf(LN = 0, 99, ipos - 1) & "|" & Arr(i, 1)
        Else
            LN = Len(Arr(i, 1))
            Arr(i, 1) = 100 + IIf(LN = 0, 99, LN) & "|" & Arr(i, 1)
        End If
      Next i
      .Value = Arr
      .Sort Key1:=.Item(1), Order1:=xlAscending, Header:=xlNo
      .Replace "*|", "", Lookat:=xlPart
End With
End Sub

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題