# assuming list is sorted:
pattern = ["ABCDE",
"ABCDEFG",
"ABCDEFGH",
"ABCDEFGHIJKLMNO",
"CEST",
"DBTSFDE",
"DBTSFDEO",
"EOEUDNBNUW",
"EAEUDNBNUW",
"FG",
"FGH"]
pattern = list(reversed(pattern))
def iterate_patterns():
while pattern:
i = pattern.pop()
throw_it_away = False
for p in pattern:
if p.startswith(i):
throw_it_away = True
break
if throw_it_away == False:
yield i
print(list(iterate_patterns()))
Выход:
['ABCDEFGHIJKLMNO', 'CEST', 'DBTSFDEO', 'EOEUDNBNUW', 'EAEUDNBNUW', 'FGH']
blockquote >
Если это единственные рабочие листы в вашей рабочей тетради, добавьте Dim w as Worksheet
вверху вашего подпункта и измените
If Worksheets("Datasheet").Cells(x, Z) = "" Or Worksheets("Datasheet").Cells(x, Z) = "Empty" Then
FinalCell = x & ":" & x
Rows(FinalCell).Hidden = True 'Deletes the row
End If
на
If Worksheets("Datasheet").Cells(x, Z) = "" Or Worksheets("Datasheet").Cells(x, Z) = "Empty" Then
FinalCell = x & ":" & x
For Each w In ThisWorkbook.Worksheets
w.Rows(FinalCell).Hidden = True
Next w
End If
, если они не являются только рабочие листы в вашей рабочей тетради
If Worksheets("Datasheet").Cells(x, Z) = "" Or Worksheets("Datasheet").Cells(x, Z) = "Empty" Then
FinalCell = x & ":" & x
Worksheets("DataSheet").Rows(FinalCell).Hidden = True
Worksheets("YourSheet1").Rows(FinalCell).Hidden = True
Worksheets("YourSheet2").Rows(FinalCell).Hidden = True
Worksheets("YourSheet3").Rows(FinalCell).Hidden = True
End If