|
おはようございます。
私もKeinさんの
>作業列を使ってRIGHT関数で数値の部分を抜き出すやりかたの方が
>ずっと簡単・明瞭に処理できると思います。
に賛成です。だって、Excelならではですからねえ!!
学校の課題とかでなければ・・・、
>
>例えば、下記のようなコードが並んでいて・・・
>ABC111
>ABCD123
>ABC111
>ABC555
>ABC555
>
>並び替えをすると・・・
>ABC111
>ABC111
>ABCD123
>ABC555
>ABC555
上記のデータがアクティブシートのセルA1から並んでいるとすると、
標準モジュールに
'=================================================================
Sub test()
Dim idx As Variant
Dim g0 As Long
Dim in_alpha As Variant
Dim only_num As Variant
Dim addr As String
addr = Range("a1", Cells(Rows.Count, "a").End(xlUp)).Address
in_alpha = Application.Transpose(Range("a1", Cells(Rows.Count, "a").End(xlUp)).Value)
only_num = Evaluate("=transpose(value(right(" & addr & ",3)))")
For g0 = 1 To UBound(only_num)
With Application
idx = .Match(.Min(only_num), only_num, 0)
End With
Cells(g0, "a").Value = in_alpha(idx)
only_num(idx) = ""
Next
End Sub
こんな方法もあります。
(ソートのアルゴリズムの課題なら、
この方法は駄目・・・、と言われますけどね!!)
試してみてください。
デワ2.☆彡
|
|