Доброго времени суток. Есть такой вопрос. Имеется книга с несколькими листами. Через формулы, в первый столбец каждого листа, выводятся условия (при помощи формулы "ЕСЛИ". Как дополнить имеющийся макрос,
что бы нажатием на кнопку скрывал строки, в которых выводиться условие.
Я так понимаю что имеющийся макрос, работает на все листы, и проверяет строки на наличие того или иного условия на листе. Но проблема заключается в том, что макрос не воспринимает ссылки и работает только с наличием "живых" условий, которые прописаны вручную.
Пример фала приложил. Подскажите пожалуйста решение этой задачи.
Код |
---|
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 |
Я так понимаю что имеющийся макрос, работает на все листы, и проверяет строки на наличие того или иного условия на листе. Но проблема заключается в том, что макрос не воспринимает ссылки и работает только с наличием "живых" условий, которые прописаны вручную.
Пример фала приложил. Подскажите пожалуйста решение этой задачи.