2015-03-19 3 views
-1

Я нашел/отредактировал существующий код VBA, чтобы создать макрос, который скрывает пустые строки. Он работал отлично, пока мне не пришлось редактировать электронную таблицу, чтобы по крайней мере одна ячейка в каждой строке имела формулу. Большинство из этих формул ничего не возвращают, но поскольку они технически не равны 0, мой существующий макрос не скрывает строки. Как изменить макрос ниже, чтобы скрыть как пустые строки, так и те, которые имеют только нулевые значения? Благодаря!Скрыть пустые и нулевые строки

Sub HideEmpties() 
     Set r = ActiveSheet.UsedRange 
     nLastRow = r.Rows.Count + r.Row - 1 
     nFirstRow = r.Row 
     For n = nFirstRow To nLastRow 
     If Application.WorksheetFunction.CountA(Rows(n)) = 0 Then 
     Rows(n).EntireRow.Hidden = True 
     End If 
     Next 
    End Sub 
+0

Если формулы возвращают '' '', то не будет ли счет еще работать? Что возвращают формулы? – Kyle

ответ

-1

Вы можете попробовать изменить 0 к 1.

2

Небольшое изменение в коде:

Sub HideEmpties() 
     Set r = ActiveSheet.UsedRange 
     nLastRow = r.Rows.Count + r.Row - 1 
     nFirstRow = r.Row 

     For n = nFirstRow To nLastRow 
      If Application.WorksheetFunction.CountBlank(Rows(n)) = Columns.Count Then 
       Rows(n).EntireRow.Hidden = True 
      End If 
     Next 
End Sub 

Поскольку СЧИТАТЬПУСТОТЫ() лечит обнуляет, как заготовок.

+0

Работал как шарм - большое спасибо! –

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