|
お世話になります。
VBAで得意先別に売上データを並べ変えたいと思っています。
(実際は得意先別>売上日昇順>回収日昇順の3つの条件)
Sheets("売上T(売掛金用)").Select
Worksheets("売上T(売掛金用)").Sort.SortFields.Clear
Worksheets("売上T(売掛金用)").Sort.SortFields.Add Key:= _
Range(Range("D2"), Range("D2").End(xlDown)), _
SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
"(株)××,(株)○○,(株)△▽,・・・(数十件の顧客名)・・・" _
, DataOption:=xlSortNormal
With Worksheets("売上T(売掛金用)").Sort
.SetRange Range(Range("H1"), Range("A1").End(xlDown))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
上記でやってみると並べ替えができるのですが、得意先も社名変更があったり
付き合いが無くなったり、もちろん新規ができたりするので
あるセル範囲を指定して、そのデータを元に並べ替えしてくれるもの
を作りたいです。そこで、
Sheets("売上T(売掛金用)").Select
Worksheets("売上T(売掛金用)").Sort.SortFields.Clear
Worksheets("売上T(売掛金用)").Sort.SortFields.Add Key:= _
Range(Range("D2"), Range("D2").End(xlDown)), _
SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
sheets("得意先T").Range(Range("A2"), Range("A2").End(xlDown)) _
, DataOption:=xlSortNormal
With Worksheets("売上T(売掛金用)").Sort
.SetRange Range(Range("H1"), Range("A1").End(xlDown))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
上記のような文を作ってみたのですがうまくいきません。
いろいろ調べてみたのですが、直接並べ替えるデータをVBAに書き込む以外の
方法が見つかりませんでした。
解る方いらっしゃいましたら、ご指導ください。
|
|