2013-09-27 3 views
0

Я хочу скрыть определенную группу строк, где 1-я строка после пустой строки - «xyz» до следующей пустой строки. напримерСкрыть группу строк в excel

**heloo** 
a 
b 

**xyz** 
as 
df 

**hello** 
g 
j 

**xyz** 
ghj 
gh 
jk 
jk 

Я хочу выход быть в

**heloo** 
a 
b 

**hello** 
g 
+1

Не совсем поняли. Где пустые строки в вашем примере? – sam092

+1

Вы пытались использовать макрорекордер, чтобы начать? – ARich

ответ

0

Похоже, вы редактировали Ваш вопрос немного, поэтому входы slighty различны. Однако это идея того, что вам нужно. В принципе, определите диапазон. Пройдите через него, пока не найдете xyz. Установите флаг, чтобы начать скрывать каждую строку на итерации, пока не найдете пустую строку.

Sub HideRows() 
    Set r = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row) 
    hiderow = False 
    For Each c In r.Cells 
     If Left(c.Value, 3) = "xyz" Then 
      hiderow = True 
     ElseIf Len(c.Value) = 0 Then 
      hiderow = False 
     End If 
     If hiderow Then 
      c.Select 
      Selection.EntireRow.Hidden = True 
     End If 
    Next c 
End Sub 
+0

Вы забыли перезагрузить 'hiderow' в вашей петле – sam092

+0

Возможно, я что-то упустил; но hiderow сбрасывается, когда найден пустой столбец. – Chris

+0

Если вы не найдете пустую строку в последующих лупах, 'hiderow' будет по-прежнему быть правдой, поэтому скрывать нерелевантные строки, а также – sam092

Смежные вопросы