Страница: 1 |
Страница: 1 |
Вопрос: Скрыть/показать строку по условию в excel
Добавлено: 10.02.09 14:07
Автор вопроса: abv
Доброго времени суток!
Есть ли решение для задачи:
=если(ячейка=0;скрыть строку;показать строку)?
Пока попытки создать функцию на VBA самостоятельно успеха не принесли. Буду благодарен, даже если кто-нибудь твердо ответит НЕТ РЕШЕНИЯ.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #1
Добавлено: 10.02.09 14:32
If Cells(1, 1).Value = 0 Then
Rows(3).Hidden = True
Else
Rows(3).Hidden = False
End If
End Sub
Номер ответа: 2
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #2
Добавлено: 10.02.09 15:24
Больше всего подходит Автофильтр. Он для того только и служит, чтоб отображать строки по условию.
Михаил, идея верная. Только есть к чему придраться:
1. Почему мы это делаем в событии Worksheet_SelectionChange?
2. У тебя Target никак не используется и почему-то проверяется исключительно A1 и при этом скрывается другая - третья стрка.
Если макросом, то я бы сделал примерно так:
Номер ответа: 3
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #3
Добавлено: 10.02.09 15:28
А если надо скрывать также пустые строки, то можно еще так:
Вызывать из другой подпрограммы или обработчика (пример для 1-го столбца):
Номер ответа: 4
Автор ответа:
AngryBadger
Вопросов: 33
Ответов: 245
Профиль | | #4
Добавлено: 10.02.09 15:54
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 10.02.09 16:24
Михаил,
угу, мне ясно )
Номер ответа: 6
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #6
Добавлено: 10.02.09 18:27
Для начала неплохо было бы уточнить у автора вопроса, что значит в его случае ячейка=0?
Действительно в ней находится число 0 или это просто пустая ячейка или нужно скрыть строки в любом из данных случаев?
Пример от mc-black может подсказать решение для дюбого из этих вариантов, но...
Если привязать его к Worksheet_SelectionChange, то жизнь из-за жутких тормозов медом не покажется.
Чуть облегчить участь кнопкодава поможет следущее решение:
Номер ответа: 7
Автор ответа:
abv
Вопросов: 4
Ответов: 16
Профиль | | #7
Добавлено: 11.02.09 13:40
Спасибо всем за ответы.
Я не правильно сформулировал вопрос. С автофильтром уже пробовал, работает, но требуется щелкнуть кнопку. Это и есть проблема. Менеджеры щелкают не по кнопке "печатать лист", которая запускает макрос, а по названию листа и потом печатают как обычно (они так привыкли). В результате в бланке присутствует много лишних строк. Если нельзя скрыть/показать строки по их значению, то может быть можно запустить макрос при активации листа (примерно также, как в автозапуске работает команда OnDoubleClick)?
Номер ответа: 8
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #8
Добавлено: 11.02.09 14:23
Ну вызывай
Номер ответа: 9
Автор ответа:
abv
Вопросов: 4
Ответов: 16
Профиль | | #9
Добавлено: 17.02.09 06:21
Спасибо mc-black! Сработало как надо.