|
こんにちは
こちらはExcel2003なので試せないですけど、
こんな感じでしょうか?
Dim s As Range
With Worksheets("Sheet1")
.Sort.SortFields.Clear
Set s = .Range("A1").CurrentRegion
.Sort.SortFields.Add Key:=s _
, SortOn:=xlSortOnValues _
, Order:=xlAscending _
, DataOption:=xlSortNormal
With .Sort
.SetRange s
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
▼はる さん:
>データ数が変動するときの並び替えについて質問があります。
>以下のような条件があるとして並び替えを行います。
>
> A B C
>1 名前 数値
>2 A君 260
>3 Yさん 320
>4 G君 200
>5 O君 150
>6 Nさん 310
>7 Mさん 330
>8
>
>そこで以下のようなマクロを組みました。
> Range("A2").Select
> Range(Selection, Selection.End(xlDown)).Select
> Range(Selection, Selection.End(xlToRight)).Select
>
> ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
> ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A7") _
> , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
> With ActiveWorkbook.Worksheets("Sheet1").Sort
> .SetRange Range("A1:B7")
> .Header = xlYes
> .MatchCase = False
> .Orientation = xlTopToBottom
> .SortMethod = xlPinYin
> .Apply
> End With
>
>しかしデータ数(列数)の増減があるためマクロ途中の「Add Key:=Range("A2:A7") 」と「.SetRange Range("A1:B7")」のところをデータの増減に合わせて処理できるようにしたいのですが,巧くいきませんでした。
>どのようにすればよろしいでしょうか?
>どなたかご教授願います。
|
|