Страницы: 1
RSS
Скрытие строк, Скрытие строк на нескольких листах, при условии
 
Доброго времени суток. Есть такой вопрос. Имеется книга с несколькими листами. Через формулы, в первый столбец каждого листа, выводятся условия (при помощи формулы "ЕСЛИ". Как дополнить имеющийся макрос,
Код
Option Explicit
  
Const FoundWhat = "0"
  
Sub HideRows()
    FindInWb ActiveWorkbook
End Sub
  
Sub ShowRows()
    Dim sh As Worksheet
    For Each sh In ActiveWorkbook.Worksheets
        sh.UsedRange.EntireRow.Hidden = False
    Next
End Sub
  
Sub FindInWb(wb As Workbook)
    Dim sh As Worksheet
    Dim arrSheets As Variant
    Dim v As Variant
     
    'указываем названия листов в кавычках через запятую
    arrSheets = Array("Лист1", "Лист2", "Лист3", "Лист4")
     
    For Each v In arrSheets
        Set sh = wb.Worksheets(v)
        FindInSheet sh
    Next
End Sub
  
Sub FindInSheet(sh As Worksheet)
    With sh.UsedRange
        Dim FoundCell As Range
        Dim LastCell As Range
        Dim FirstAddr As String
        Set LastCell = .Cells(.Rows.Count, .Columns.Count)
        Set FoundCell = .Find(what:=FoundWhat, after:=LastCell)
          
        If Not FoundCell Is Nothing Then
            FirstAddr = FoundCell.Address
        End If
        Do Until FoundCell Is Nothing
            FoundCellJob FoundCell
            Set FoundCell = .FindNext(after:=FoundCell)
            If FoundCell.Address = FirstAddr Then
                Exit Do
            End If
        Loop
    End With
End Sub
  
Sub FoundCellJob(cl As Range)
    cl.EntireRow.Hidden = True
End Sub
что бы нажатием на кнопку скрывал строки, в которых выводиться условие.
Я так понимаю что имеющийся макрос, работает на все листы, и проверяет строки на наличие того или иного условия на листе. Но проблема заключается в том, что макрос не воспринимает ссылки и работает только с наличием "живых" условий, которые прописаны вручную.
Пример фала приложил. Подскажите пожалуйста решение этой задачи.
Страницы: 1
Наверх