アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルの並び替えについて、マクロのコードを教えて頂けますか。
※関数や機能で出来るのは分かっていますのでマクロのコードでお願い致します。

E10~H20の範囲でE列を基準に並び替えたいです。
並び替えの条件は上から文字数が多い順とします。
E列には半角英数字とハイフンしか入りません。(ハイフンも1文字とカウントします)
同じ文字数の時は数字が上でもアルファベットが上でもどちらでも良い。
桁が多い順に並んでいて、数字とアルファベットが降順?昇順?されて要れば良い。


A111-01
1111-01
B111-01
A11
111
B11

↓↓このように並び変えたい↓↓

A111-01
B111-01
1111-01
A11
B11
111

A 回答 (1件)

こんばんは!



Sub Sample1()
Dim i As Long
Application.ScreenUpdating = False
Range("I:J").Insert
For i = 10 To 20
Cells(i, "I") = Len(Cells(i, "E"))
If Left(Cells(i, "E"), 1) Like "[A-Za-z]" Then
Cells(i, "J") = Asc(Left(Cells(i, "E"), 1))
End If
Next i
Range("E10:J20").Sort _
key1:=Range("I10"), order1:=xlDescending, Header:=xlNo, _
key2:=Range("J10"), order1:=xlAscending, Header:=xlNo
Range("I:J").Delete
Application.ScreenUpdating = True
End Sub

※ 細かい検証はしていませんので
不具合が出たらごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

思った通りにできました! 気持ちよく回答頂き感謝致します!

お礼日時:2016/02/26 07:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!