2017-09-08 10 views
-2

マクロを選択した範囲の同じ2つの列で並べ替えたい。 (列BとH)選択の複数の列を並べ替えるExcelマクロ

範囲は、VBAでA1からH40に制限されている可能性がありますが、行の数が異なる場合に範囲A〜Hを示すコードが必要です。

ソートは、B1からB40、H1からH40ではなく、すべての列AからHで行う必要があります。

答えて

0

あなたはたとえば、あなたはあなたがする必要

Columns("A:H").Select 
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B:B"), _ 
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("H:H"), _ 
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
With ActiveWorkbook.Worksheets("Sheet1").Sort 
    .SetRange Range("A:H") 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

以下のすべては、あなたがそれを実行したときにマクロを記録し、行番号を削除した使用することができますHに列にソートされている場合はレンジ( "B2: B20)〜範囲( "B:B")

0
` 
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear 
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("H:H") _ 
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("J:J") _ 
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
With ActiveWorkbook.ActiveSheet.Sort 
.SetRange Selection 
.Header = xlGuess 
.MatchCase = False 
.Orientation = xlTopToBottom 
.SortMethod = xlPinYin 
.Apply 
End With 
` 
+0

これは間違った列 – Quack

関連する問題