СообЧа > База Знаний > Программы > MS Excel

Вопрос

Как мне сделать так, чтобы при выполнении определенного условия (напр. B4=0) строка (напр.4) с этой ячейкой скрывалась бы автоматически?

Ответ

Для этого нужно написать макрос на VBA для Excel. Выполни в Excel следующее: Сервис — Макрос — Редактор Visual Basic и записать:

Sub Макрос7()
'

'
Sheets("Лист1").Select 'выбор листа
Range("b4").Select 'выбор проверяемой ячейки
If Range("b4") = 0 Then 'сравнение с нулем
Rows("4:4").Select 'выбор строки
Selection.EntireRow.Hidden = True 'скрыть строку
End If
End Sub


и дальше выполни Запуск — Запуск подпрограммы

Анатолий Киюк

Можно сделать так: в редакторе VBA дважды щелкнуть по листу, для которого надо задать условие и в окне программы листа набрать примерно следующее:

Const glCol As Long = 2 \' столбец B
Const gbAllHide As Boolean = False

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Rows.Count = 1 And .Columns.Count = 1
And .Column = glCol And .FormulaR1C1 = \"0\"
Then
If gbAllHide Then
Application.ScreenUpdating = False
With ActiveSheet.UsedRange.Rows
Dim lR As Long
For lR = .Row To .Row + .Count — 1
If Cells(lR,
glCol).FormulaR1C1 = \"0\" And Not Rows(lR).Hidden
Then
Rows(lR).Hidden = True
End If
Next lR
End With
Application.ScreenUpdating = True
Else
.Rows.Hidden = True
End If
End If
End With
End Sub


Теперь при вводе 0 в любую строку столбца 2 эта строка (а при включенном режиме gbAllHide — все строки, содержащие 0) будет спрятана автоматически.

Priam



Copyright © 2000-2004 Сообщество Чайников
Контактная информация