Как скрыть или отобразить строки или столбцы в Excel с помощью VBA
Довольно часто появляется необходимость в Excel скрывать или отображать строки или столбцы. Особенно это актуально, когда на листе размещается очень много информации и часть из них является вспомогательной и требуется не всегда и тем самым загромождает пространство, ухудшая восприятие. Если это приходится делать часто, то делать это с помощью меню неудобно, особенно если приходится скрывать и отображать разные столбцы и строки.
Для существенного удобства можно написать простенький макрос, привязав его к кнопке и делать это одним щелком мыши.
Вот так выглядят простые примеры, с помощью которых Вы без труда сможете скрывать или отображать строки и столбцы с помощью VBA
Пример 1: Скрыть строку 2 в Excel
Sub HideString() ‘Это название макроса
Rows(2).Hidden = True
End Sub
Пример 2: Скрыть несколько строк в Excel (строку 3-5)
Sub HideStrings()
Rows(“3:5”).Hidden = True
End Sub
Пример 3: Скрыть столбец 2 в Excel
Sub HideCollumn()
Columns(2).Hidden = True
End Sub
Пример 4: Скрытие нескольких столбцов в Excel
Sub HideCollumns()
Columns(“E:F”).Hidden = True
End Sub
Пример 5: Скрытие строки по имени ячейки в Excel
Sub HideCell()
Range(“Возможности Excel”).EntireRow.Hidden = True
End Sub
Пример 6: Скрытие нескольких строк по адресам ячеек
Sub HideCell()
Range(“B3:D4”).EntireRow.Hidden = True
End Sub
Пример 7: Скрытие столбца по имени ячейки
Sub HideCell()
Range(“Возможности Excel”).EntireColumn.Hidden = True
End Sub
Пример 8: Скрытие нескольких столбцов по адресам ячеек
Sub HideCell()
Range(“C2:D5”).EntireColumn.Hidden = True
End Sub
Как видите процесс автоматического скрытия строк и столбцов очень прост, а применений данному приему огромное множество.
Для того, чтобы отобразить строки и столбцы в Excel вы можете воспользоваться этими же макросами, но вместе True необходимо указать False
Например, макрос для того, чтобы отобразить строку 2 будет выглядеть следующим образом:
Sub ViewString()
Rows(2).Hidden = False
End Sub
Надеемся, что данная статья была полезна вам и ответила на вопрос: как скрыть или отобразить строки и столбцы в Excel с помощью VBA
Спасибо за внимание.
Что делать если условием таблицы является скрытие столбцов по условию: содержание в ячейках определенного значения? Нужен макрос? Можете помочь?
Например: Есть таблица со строками содержащими в заголовке название рыб (200 строк) и столбцами содержащими в заголовке название наживки для рыб(50 столбцов). В таблице есть диапазон содержащий в ячейках символ Х и символ Y. Используя стандартный фильтр выбираю в одном из столбцов “фильтровать по значению Х” Требуется: Выделив все ячейки оставшегося после фильтрации диапазона(например осталось только 20 строк названий рыб и все 50 столбцов названий наживки) скрыть СТОЛБЦЫ в которых ячейки диапазона не содержат хотя бы 1 символ Х (например в результате получиться 20 строк названий рыб и всего 5 СТОЛБЦОВ названий наживки)
Добрый день!
Выдает ошибку на многоточие и макрос не срабатывает 🙁 как быть в этой ситуации???
Пример 4: Скрытие нескольких столбцов в Excel
Sub HideCollumns()
Columns(«E:F»).Hidden = True
End Sub
Здравствуйте!
Подскажите, пжл, что делаю не так ?!:
В примере №7, выдаёт ошибку 400, пишет:
“Method ‘Range’of object’_Worksheet’failed”
Подскажите, пожалуйста, как сделать, чтобы в примере №7, макрос ссылался бы НЕ на ИМЯ ячейки, а на ЗНАЧЕНИЕ, которое есть в ячейке ?
Иными словами, если ячейки А1, А2, А3 – содержать значение “хотим скрыть эти строки”, то макрос скрывает эти строки (т.е. – строки 1, 2 и 3).
Если в какой-либо ячейке – иное значение, то, соответственно, эта строка НЕ скрывается.
Зараенее спасибо за ответ.
Попробуйте вот этот готовый макрос для скрытия и отражения строк по условию
https://yadi.sk/i/Hl2ePH5dbJ2bp
Спасибо за макрос!
Но адаптировать под себя – оказалось для меня слишком сложно ((.
Буду благодарен, если подскажите, как реализовать такую процедуру:
На ЗАЩИЩЁННОМ листе – две кнопки “Скрыть” и “Отобразить”
При нажатии кнопки “Скрыть” – происходит скрытие всех строк, одна из ячеек которых (скажем, все такие ячейки расположены в одном столбце “D”) содержит значение “Счёт закрыт”.
Лист при этом остаётся ЗАЩИЩЁННЫМ.
И, соответственно, при нажатии кнопки “Отобразить” – все скрытые строки – отображаются. Лист также остаётся защищённым.
Заранее спасибо !
Разобрался сам ))
А вот такой вопрос. Есть диапазон в 31 столбец, как скрыть столбцы выходящие за предел диапазона в зависимости от продолжительности месяца. то есть, если, к примеру февраль, то скрыть 3 или 2 последних столбца в диапазоне. Заранее спасибо за ответ !
Можно воспользоваться простеньким макрос скрытия столбцов по определенному условию (в данном случае, если в перовой строке есть цифра 1).
Sub Col() ‘Скрыть столбцы
Application.ScreenUpdating = False
For Each s In Cells(1, 1).CurrentRegion.Rows(1).Cells
Columns(s.Column).EntireColumn.Hidden = s.Value = 1
Next s
Application.ScreenUpdating = True
End Sub
Sub all() ‘Отобразить все
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
Cells.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub
Скачать файл