【发布时间】:2013-02-27 04:24:33
【问题描述】:
我有一个包含四个“系统”工作表的工作簿,每个系统工作表都有一个动态编号或用于各种数据收集的后续选项卡。我需要的是一种按字母顺序对系统及其子工作表进行排序但存在于两个特定工作表之间的方法。示例:
[介绍/参考表] [客户信息表] [系统 1] [Sys1 Child 1-12] [System 2] [Sys2 Child 1-12] [System 3] [Sys3 Child 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”的工作表,其他所有内容都在列表的末尾。关于如何让它发挥作用的任何想法?
编辑: 系统工作表都以“S1”到“S4”开头,但它们被重命名为“S1 - %string%”到“S4 - %string%”,子工作表是最初命名为“S#”的隐藏工作表的副本L#”,其中 # 分别是系统编号和子编号。子表也可以重命名,但它将遵循模式“S#L# - %string%”
【问题讨论】:
-
如果没有相关数据样本,很难发现问题所在。
-
您能否详细说明您如何决定哪个工作表是哪个工作表?您似乎查看了“Z1”范围,但您没有提供您实施的具体规则以了解哪个工作表是系统/子表...
-
对不起,系统表都以“S1”到“S4”开头,但它们被重命名为“S1 - %string%”到“S4 - %string%”,子表是副本最初命名为“S#L#”的隐藏工作表,其中 # 分别是系统编号和子编号。子表也可以重命名,但它将遵循模式“S#L# - %string%”