|
どうしても動かないし、マクロがスマートではないので、お知恵を拝借したいと思います。
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
|
|