2015-06-21 3 views
0

У меня есть диапазон ячеек B2: AB40.Скрыть всю строку, когда диапазон ячеек пуст

Если каждая ячейка в каждой строке внутри диапазона пуста (под этим я подразумеваю отсутствие текста или цифр, только заполнение цвета и форматирование границы), я хочу скрыть всю строку с помощью макроса.

например.

If every cell in the range B2:AB2 is blank then hide all of row 2. 

If every cell in the range B3:AB3 is blank then hide all of row 3 

If every cell in the range B4:AB4 is blank then hide all of row 4..etc etc etc 

Вплоть до строки 40.

нотабене Каждая ячейка в столбце A и AC в каждой строке, смежной с указанным диапазоном, всегда будет иметь текст (чье-то имя и результат формулы соответственно), и это не может быть изменено.

Я видел различные способы сделать это на основе одной ячейки, но, похоже, не может их адаптировать для моих целей.

Любая помощь приветствуется.

ответ

3

Рассмотрим:

Sub RowHider() 
    Dim I As Long, wf As WorksheetFunction 
    Set wf = Application.WorksheetFunction 
    For I = 2 To 40 
     If wf.CountA(Range("B" & I & ":AB" & I)) = 0 Then 
      Rows(I).Hidden = True 
     Else 
      Rows(I).Hidden = False 
     End If 
    Next I 
End Sub 

Обратите внимание на использование функции листа в VBA.

+0

Re замечанием 'функции рабочего листа' - я MIS помечать на мой вопрос? Если так, то я приношу свои извинения. – SteelyDanFan

+0

@SteelyDanFan Не нужно извиняться ............ Я просто указывал на функцию кода ............, ваша маркировка была в порядке. –

0

Попробуйте

Sub HideRangeIfEmpty() 
 

 
    
 
    
 
    If Application.WorksheetFunction.CountA(Range("b2:AB2")) = 0 Then 
 
     Range("b2:AB2").EntireRow.Hidden = True 
 

 
    End If 
 
    
 
    
 
End Sub

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