S.T.R.E.L.O.K.
09-06-2011, 23:22
Требуется скрыть/отобразить строки нажатием кнопки по условию.
Условие: искать ячейки с типом данных (Данные->Проверка->Условие проверки) "Список" и скрывать всю строку, в который находится данная ячейка.
Пробовал изменить макрос:
Sub HideBlankRows() ' скрывает все пустые строки
Dim sh As Worksheet, ro1 As Range, ro2 As Range, ro As Range, rowss As Range
Application.ScreenUpdating = False
With ActiveSheet
Set ro1 = .UsedRange.Cells(.UsedRange.Cells.Count).Offset(1): Set ro2 = ro1.End(xlDown)
Range(ro1, ro2).EntireRow.Hidden = True
For Each ro In .UsedRange.EntireRow
If ro.Text = vbNullString Then If rowss Is Nothing Then Set rowss = ro Else Set rowss = Union(rowss, ro)
Next
If Not rowss Is Nothing Then rowss.EntireRow.Hidden = True
End With
Application.ScreenUpdating = True
End Sub
Sub ShowHiddenRows() ' отображает все скрытые строки
Application.ScreenUpdating = False: ActiveSheet.Rows.Hidden = False: Application.ScreenUpdating = True
End Sub
Но в них я практически полный ноль.
Помогите исправить, пожалуйста. И заранее спасибо.
Условие: искать ячейки с типом данных (Данные->Проверка->Условие проверки) "Список" и скрывать всю строку, в который находится данная ячейка.
Пробовал изменить макрос:
Sub HideBlankRows() ' скрывает все пустые строки
Dim sh As Worksheet, ro1 As Range, ro2 As Range, ro As Range, rowss As Range
Application.ScreenUpdating = False
With ActiveSheet
Set ro1 = .UsedRange.Cells(.UsedRange.Cells.Count).Offset(1): Set ro2 = ro1.End(xlDown)
Range(ro1, ro2).EntireRow.Hidden = True
For Each ro In .UsedRange.EntireRow
If ro.Text = vbNullString Then If rowss Is Nothing Then Set rowss = ro Else Set rowss = Union(rowss, ro)
Next
If Not rowss Is Nothing Then rowss.EntireRow.Hidden = True
End With
Application.ScreenUpdating = True
End Sub
Sub ShowHiddenRows() ' отображает все скрытые строки
Application.ScreenUpdating = False: ActiveSheet.Rows.Hidden = False: Application.ScreenUpdating = True
End Sub
Но в них я практически полный ноль.
Помогите исправить, пожалуйста. И заранее спасибо.