vba (より大きなマクロの途中) でテーブルを 2 つのレベルで並べ替えようとしています。マクロを記録しようとしましたが、その範囲はその一連のデータに固有のものでした。範囲の終わりは変わる可能性があるので、コードにカウンターを追加して、基本的に範囲の終わりを教えてくれました
以下にあるのは、コードの簡略化されたバージョンです (単純化するためにカウンターを 200 に設定していますが、これは私のコードで変更されます)。
私が望むのは、範囲 ("A1、"AB" & counterT) を列 C で並べ替え、次に列 A で並べ替えることです。そのため、これを行う簡単な方法 (あると思います) がある場合は、コードを無視してかまいません。
実際に問題を引き起こしている部分を強調するために、コードを一時停止しました (以下でわかるように)。ただし、コードがまだ機能するという部分を修正するかどうかは完全にはわかりません。そのため、それは現在の問題であり、問題全体ではない可能性があります。助けてくれてありがとう!
Sub Sort
Dim counterT As Long
counterT = 200
Dim rDataToSort As Range, rSortData As Range
Set rSortData = Range("C4", C" & CounterT)
Set rDataToSort = Range("A4", AB" & CounterT)
ここでコードを一時停止しています。ここに第 2 レベル (列 A) を追加する方法がわからないためです。
With ActiveWorkbook.Worksheets("Output").Sort
.SortFields.Clear
.SortFields.Add Key:=rSortData, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rDataToSort
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With