まずは、以下をご覧ください。

組織の階層がバラバラです。これをソートするコードです。
本コードはアクセス権付きフォルダ作成ツールに使われています。
並び替え(ソート)コード
いつも私が使っているソートのコードを記載します。
' ソート
Sub SortSample()
Dim wsBoss As Worksheet
Set wsBoss = ThisWorkbook.Worksheets("Boss")
Dim endRow As Long
' 最下行取得
endRow = wsBoss.Cells(Rows.Count, 2).End(xlUp).Row
' Bossシートのソート
' 空白組織は"0"埋め(完全一致)
wsBoss.Range("C3:E" & endRow).Replace What:="", Replacement:="0", LookAt:=xlWhole
'フィルター(昇順)
With wsBoss.Sort
' 過去のソート設定を削除
.SortFields.Clear
' ソートのキーを設定
.SortFields.Add Key:=Range("B2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("C2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("D2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("E2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
' ソートの範囲を指定
.SetRange wsBoss.Range("A2:AW" & endRow)
' ヘッダーの有無指定
.Header = xlYes
' 並び替え実行
.Apply
End With
' 一時的に"0"を埋めた組織は組織をブランクに置換(完全一致)
wsBoss.Range("C3:E" & endRow).Replace What:="0", Replacement:="", LookAt:=xlWhole
End Sub
並び替え(ソート)コードの実行結果
以下の画像を見ていただければ、順序のイメージがつくと思います。 人事部の上位階層が上にきています。 また、1,2,3係もちゃんと並んでいますね!

実行後
さいごに
VBAは以下に自分で汎用的に使えるサンプルコードを持っておけるかです! ソートも結構使いますので、ぜひご活用くださいませ! ではまた。
