dポイントプレゼントキャンペーン実施中!

変更して使用したく以下の内容を知りたいのですが
SortFields.Add Key:=rng.Cells(1, 2), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=rng.Cells(1, 1), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=rng.Cells(1, 3), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOpti
よろしくお願いいたします。

A 回答 (2件)

=rng.Cells(1, 2)


ここの後ろのパラメータが上から順に2,1,3と並んでますよね。
それを1,2,3とすればいいのでは?

>2列目、1列目、3列目の順に基準を考えています。
って書いてるのに多少の類推はお願いします。
    • good
    • 0

その前に


with ほにゃらか.Sort
があると思います。
(最初のSortFieldsが先頭のピリオドないのは?)

並べ替えはどこを基準に並べ替えるかを(それをキーと呼びます)
何段階かで指定できます。
このケースでいうと3段階に指定していて、mgがどこを指しているか
判りませんけど、多分ソートしたい範囲かな?
2列目、1列目、3列目の順に基準を考えています。
並べ替えの結果がそうなっていませんか?
    • good
    • 0
この回答へのお礼

有難うございます。
Option Explicit
Sub test2()
mySort Worksheets("Sheet1 ").Range("D365:F445")
mySort Worksheets("Sheet1 ").Range("D448:F528")
mySort Worksheets("Sheet1 ").Range("D531:F611")
End Sub
Function mySort(rng As Range)
Dim ws As Worksheet

Set ws = rng.Parent
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=rng.Cells(1, 2), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=rng.Cells(1, 1), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=rng.Cells(1, 3), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rng
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Function

DEFにしたい場合はどこを変更すればよいのでしょうか。
よろしくお願い致します。

お礼日時:2017/03/12 09:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!