Как скрыть или отобразить строки или столбцы в 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

Спасибо за внимание.

 

Поделиться:
9 Комментариев
  • Сергей Анатольевич says:

    Что делать если условием таблицы является скрытие столбцов по условию: содержание в ячейках определенного значения? Нужен макрос? Можете помочь?
    Например: Есть таблица со строками содержащими в заголовке название рыб (200 строк) и столбцами содержащими в заголовке название наживки для рыб(50 столбцов). В таблице есть диапазон содержащий в ячейках символ Х и символ Y. Используя стандартный фильтр выбираю в одном из столбцов «фильтровать по значению Х» Требуется: Выделив все ячейки оставшегося после фильтрации диапазона(например осталось только 20 строк названий рыб и все 50 столбцов названий наживки) скрыть СТОЛБЦЫ в которых ячейки диапазона не содержат хотя бы 1 символ Х (например в результате получиться 20 строк названий рыб и всего 5 СТОЛБЦОВ названий наживки)

  • Julia says:

    Добрый день!
    Выдает ошибку на многоточие и макрос не срабатывает 🙁 как быть в этой ситуации???

    Пример 4: Скрытие нескольких столбцов в Excel
    Sub HideCollumns()
    Columns(«E:F»).Hidden = True
    End Sub

  • Dmitry says:

    Здравствуйте!
    Подскажите, пжл, что делаю не так ?!:

    В примере №7, выдаёт ошибку 400, пишет:
    «Method ‘Range’of object’_Worksheet’failed»

    • Dmitry says:

      Подскажите, пожалуйста, как сделать, чтобы в примере №7, макрос ссылался бы НЕ на ИМЯ ячейки, а на ЗНАЧЕНИЕ, которое есть в ячейке ?
      Иными словами, если ячейки А1, А2, А3 — содержать значение «хотим скрыть эти строки», то макрос скрывает эти строки (т.е. — строки 1, 2 и 3).
      Если в какой-либо ячейке — иное значение, то, соответственно, эта строка НЕ скрывается.
      Зараенее спасибо за ответ.

      • excel says:

        Попробуйте вот этот готовый макрос для скрытия и отражения строк по условию
        https://yadi.sk/i/Hl2ePH5dbJ2bp

        • Dmitry says:

          Спасибо за макрос!
          Но адаптировать под себя — оказалось для меня слишком сложно ((.
          Буду благодарен, если подскажите, как реализовать такую процедуру:
          На ЗАЩИЩЁННОМ листе — две кнопки «Скрыть» и «Отобразить»
          При нажатии кнопки «Скрыть» — происходит скрытие всех строк, одна из ячеек которых (скажем, все такие ячейки расположены в одном столбце «D») содержит значение «Счёт закрыт».
          Лист при этом остаётся ЗАЩИЩЁННЫМ.
          И, соответственно, при нажатии кнопки «Отобразить» — все скрытые строки — отображаются. Лист также остаётся защищённым.
          Заранее спасибо !

    • Dmitry says:

      Разобрался сам ))

  • Сергей says:

    А вот такой вопрос. Есть диапазон в 31 столбец, как скрыть столбцы выходящие за предел диапазона в зависимости от продолжительности месяца. то есть, если, к примеру февраль, то скрыть 3 или 2 последних столбца в диапазоне. Заранее спасибо за ответ !

    • excel says:

      Можно воспользоваться простеньким макрос скрытия столбцов по определенному условию (в данном случае, если в перовой строке есть цифра 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

      Скачать файл

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Рекомендуем посмотреть