プロが教えるわが家の防犯対策術!

いつもお世話になっております
下記のように並び替えをするには
どうしたよろしいでしょうか

以下表示すると 変なので
添付ファイルのようにしたのです。

実行前 4 6 5 8 9 7
  13 8 5 1 3 18

実行後 4 5 6 7 8 9
  13 5 8 18 1 3


このコードだと
使えないので
わかる方おしえてくれませんでしょうか
  With ActiveSheet
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=.Range("H1"), Order:=xlAscending
   .Sort.SetRange .Range("H1:M11")
    .Sort.Header = xlYes
    .Sort.Apply
  End With

「vba sortのやりかた」の質問画像

A 回答 (1件)

おはようございます。



詳しく見ていませんが、
.Orientation = xlLeftToRight が必要では?と思います。
あとは、範囲が .Range("H1:M11") となっていますが、"H1:M2"では?

マクロの記録で、上記の画像の様に並んだものを貼っておきます。

Sub 並べ替え()
ActiveWorkbook.Worksheets("Sheet4").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet4").Sort.SortFields.Add Key:=Range("H1:M1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet4").Sort
.SetRange Range("H1:M2")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
うまくいきました。

お礼日時:2021/12/21 11:10

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