Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


16841 / 76732 ←次へ | 前へ→

【65354】ソートについて
質問  isausa  - 10/5/14(金) 13:29 -

引用なし
パスワード
   どうしても動かないし、マクロがスマートではないので、お知恵を拝借したいと思います。

B列からP列までデータが入っています。
8行目が見出し
9行目からデータが書き込まれるようになっており、データ数は常に変わります。
まず、B1からPの最終行までのデータ範囲を選択して、その後ソートをしたいのですが、そのソートの条件が4つあります。記録式でマクロを書いて、修正をかけてみましたが、お手上げです。
助けてください。
ソートの優先順位は1.O列(得意先コード)、2.E列(枝番)、3.D列(オーダー)、4.B列(日付)の順です。
記録式でやってみたのは下記のとおり、なんとかスマートになりますか。

Sub ソート()
'
' ソート Macro
'
  Dim myRow1 As Long
  Dim myRow2 As Long
  Dim myStrg As String
   
  myRow1 = 8
 
  myRow2 = Cells(65536, "P").End(xlUp).Row
  
  myStrg = "B" & myRow1 & ":$P$" & myRow2
  ActiveCell = myStrg
 
  
  Selection.Sort Key1:=Range("E9"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
    :=xlPinYin, DataOption1:=xlSortTextAsNumbers
  Selection.Sort Key1:=Range("O9"), Order1:=xlAscending, Key2:=Range("D9") _
    , Order2:=xlAscending, Key3:=Range("B9"), Order3:=xlAscending, Header:= _
    xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    SortMethod:=xlPinYin, DataOption1:=xlSortTextAsNumbers, DataOption2:= _
    xlSortTextAsNumbers, DataOption3:=xlSortNormal
End Sub
1 hits

【65354】ソートについて isausa 10/5/14(金) 13:29 質問
【65356】Re:ソートについて Jaka 10/5/14(金) 14:45 発言
【65357】Re:ソートについて isausa 10/5/14(金) 16:16 お礼
【65359】Re:ソートについて Jaka 10/5/14(金) 16:29 発言

16841 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free