2016-08-31 4 views
0

スプレッドシートでVBA関数を実行した後、データを自動的に並べ替えることで、ユーザーはこれを行う必要はありません。次のように私が完了しようとしているソートオプションは以下のとおりです。VBAでのテキスト値によるソート

enter image description here

そして、私のVBAコードは、現在、次のとおりです。

Columns("A:AA").Sort key1:=Range("C1:C1"), order1:=xlAscending, key2:=Range("G1:G1"), order2:=xlAscending, key3:=Range("A1:A1"), order3:=xlAscending, Header:=xlYes 

あなたが見ることができるように、列Aは他ものの、適切にソートされます2はFail, Dismissed, Passedの基準に基づいてソートされず、Critical, High, Medium, Low

私がしようとしていることは可能ですか?これらの並べ替え順序を指定する方法を知っている人はいますか?

With ActiveSheet 
    .Sort.SortFields.Clear 
    .Sort.SortFields.Add Key:=.Range("C:C"), _ 
         SortOn:=xlSortOnValues, _ 
         Order:=xlAscending, _ 
         CustomOrder:="Fail,Dismissed,Passed", _ 
         DataOption:=xlSortNormal 
    .Sort.SortFields.Add Key:=.Range("G:G"), _ 
         SortOn:=xlSortOnValues, _ 
         Order:=xlAscending, _ 
         CustomOrder:="Critical,High,Medium,Low", _ 
         DataOption:=xlSortNormal 
    .Sort.SortFields.Add Key:=.Range("A:A"), _ 
         SortOn:=xlSortOnValues, _ 
         Order:=xlAscending, _ 
         DataOption:=xlSortNormal 
    .Sort.SetRange .Range("A:AA") 
    .Sort.Header = xlYes 
    .Sort.MatchCase = False 
    .Sort.Orientation = xlTopToBottom 
    .Sort.SortMethod = xlPinYin 
    .Sort.Apply 
End With 

うまくいけば、あなたが欲しいものを行う必要があります。マクロレコーダーを使用して

+1

参照:http://stackoverflow.com/questions/36576540/sorting-using-a-custom-order-in-excel-gives-error-1004 –

+2

マクロレコーダーを使用して、生成されるコードを確認しましたか?あなたは手動でその並べ替えを行うのですか? – YowE3K

+0

Yea Scott、あなたがリンクしている質問は、彼の質問の中で私の質問に答える:P(私は重複しているとは思わないが) –

答えて

2

は、次のコードに私を導きました。

関連する問題