4 つの「システム」シートを含むワークブックがあり、各システム シートには、さまざまなデータ収集に使用される動的な番号または後続のタブがあります。私が必要としているのは、システムとその子シートをアルファベット順にソートする方法ですが、2 つの特定のシートの間に存在します。例:
[導入/参照シート] [顧客情報シート] [システム 1] [Sys1 子 1-12] [システム 2] [Sys2 子 1-12] [システム 3] [Sys3 子 1-12] [システム 4] [Sys4 1-12] [その他のシート]
次のようなサブを並べ替えてみました
For Each w1 In Sheets
For Each w2 In Sheets
If w1.Range("Z1") <> "" And w2.Range("Z1") <> "" Then
If w2.Range("Z1").Value < w1.Range("Z1").Value Then
If w2.Range("Z1").Value = "S1L0" Then
w2.Move after:=Cover
Else
w2.Move before:=w1
End If
End If
End If
Next w2
Next w1
それはうまく機能し始めますが、ループが手に負えなくなり、ターゲット範囲に「S1L0」が含まれるシートが1つあり、他のすべてがリストの最後にあります。これを機能させる方法についてのアイデアはありますか?
編集: システム シートはすべて「S1」から「S4」で始まりますが、名前が「S1 - %string%」から「S4 - %string%」に変更されます。子シートは、最初に名前が付けられた隠しシートのコピーです」 S#L#" # はそれぞれシステム番号と子番号です。子シートの名前も変更できますが、「S#L# - %string%」というパターンに従います。