我有一个包含四个“系统”工作表的工作簿,每个系统工作表都有一个动态编号或用于各种数据收集的后续选项卡。我需要的是一种按字母顺序对系统及其子工作表进行排序但存在于两个特定工作表之间的方法。例子:
[介绍/参考表] [客户信息表] [系统 1] [Sys1 Child 1-12] [System 2] [Sys2 Child 1-12] [System 3] [Sys3 Child 1-12] [System 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”的表格,其他所有内容都在列表的末尾。关于如何让它发挥作用的任何想法?
编辑:系统工作表都以“S1”到“S4”开头,但它们被重命名为“S1 - %string%”到“S4 - %string%”,子工作表是最初命名的隐藏工作表的副本“ S#L#" 其中 # 分别是系统编号和子编号。子表也可以重命名,但它将遵循模式“S#L# - %string%”