Как скрыть или отобразить строки и столбцы с помощью свойства Range.Hidden из кода VBA Excel? Примеры скрытия и отображения строк и столбцов.
Range.Hidden — это свойство, которое задает или возвращает логическое значение, указывающее на то, скрыты строки (столбцы) или нет.
Синтаксис
Expression — выражение (переменная), возвращающее объект Range.
- True — диапазон строк или столбцов скрыт;
- False — диапазон строк или столбцов не скрыт.
Примечание
Указанный диапазон (Expression) должен охватывать весь столбец или строку. Это условие распространяется и на группы столбцов и строк.
Свойство Range.Hidden предназначено для чтения и записи.
Примеры кода с Range.Hidden
Пример 1
Варианты скрытия и отображения третьей, пятой и седьмой строк с помощью свойства Range.Hidden:
Sub Primer1() ‘Скрытие 3 строки Rows(3).Hidden = True ‘Скрытие 5 строки Range(«D5»).EntireRow.Hidden = True ‘Скрытие 7 строки Cells(7, 250).EntireRow.Hidden = True MsgBox «3, 5 и 7 строки скрыты» ‘Отображение 3 строки Range(«L3»).EntireRow.Hidden = False ‘Скрытие 5 строки Cells(5, 250).EntireRow.Hidden = False ‘Скрытие 7 строки Rows(7).Hidden = False MsgBox «3, 5 и 7 строки отображены» End Sub |
Пример 2
Варианты скрытия и отображения третьего, пятого и седьмого столбцов из кода VBA Excel:
Sub Primer2() ‘Скрытие 3 столбца Columns(3).Hidden = True ‘Скрытие 5 столбца Range(«E2»).EntireColumn.Hidden = True ‘Скрытие 7 столбца Cells(25, 7).EntireColumn.Hidden = True MsgBox «3, 5 и 7 столбцы скрыты» ‘Отображение 3 столбца Range(«C10»).EntireColumn.Hidden = False ‘Отображение 5 столбца Cells(125, 5).EntireColumn.Hidden = False ‘Отображение 7 столбца Columns(«G»).Hidden = False MsgBox «3, 5 и 7 столбцы отображены» End Sub |
Пример 3
Варианты скрытия и отображения сразу нескольких строк с помощью свойства Range.Hidden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Primer3() ‘Скрытие одновременно 2, 3 и 4 строк Rows(«2:4»).Hidden = True MsgBox «2, 3 и 4 строки скрыты» ‘Скрытие одновременно 6, 7 и 8 строк Range(«C6:D8»).EntireRow.Hidden = True MsgBox «6, 7 и 8 строки скрыты» ‘Отображение 2, 3 и 4 строк Range(«D2:F4»).EntireRow.Hidden = False MsgBox «2, 3 и 4 строки отображены» ‘Отображение 6, 7 и 8 строк Rows(«6:8»).Hidden = False MsgBox «6, 7 и 8 строки отображены» End Sub |
Пример 4
Варианты скрытия и отображения сразу нескольких столбцов из кода VBA Excel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Primer4() ‘Скрытие одновременно 2, 3 и 4 столбцов Columns(«B:D»).Hidden = True MsgBox «2, 3 и 4 столбцы скрыты» ‘Скрытие одновременно 6, 7 и 8 столбцов Range(«F3:H40»).EntireColumn.Hidden = True MsgBox «6, 7 и 8 столбцы скрыты» ‘Отображение 2, 3 и 4 столбцов Range(«B6:D6»).EntireColumn.Hidden = False MsgBox «2, 3 и 4 столбцы отображены» ‘Отображение 6, 7 и 8 столбцов Columns(«F:H»).Hidden = False MsgBox «6, 7 и 8 столбцы отображены» End Sub |
Довольно часто появляется необходимость в 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
Спасибо за внимание.
Burk, Hugo121, Добрый день.
Я искала решение своей проблемы, увидела, что вы в макросах вроде разбираетесь, хотела бы спросить, если можно.
Я вообще в макросах не разбираюсь, но появилась необходимость использовать. Нужно было в очень большой таблице скрывать нужные месяцы. Вручную это занимает очень много времени так как повторение месяцев идет больше 100 раз.
Нашла в интернете макрос, что скрывал бы отмеченные столбцы :
Visual Basic | ||
|
Но так как у меня условие это название месяца, я немного исправила, руководствуясь просто логикой:
Visual Basic | ||
|
Теперь отображать месяца все он отображает, но нужное не скрывает.
Подскажите, пожалуйста, что я сделала не так?
Заранее спасибо!
Serge Пользователь Сообщений: 11308 |
Есть файл, в котором надо нажатием кнопки скрыть/отобразить строки, которые пусты визуально (на самом деле в них формулы). Дополнительную сложность представляют столбцы залитые зелёным (в них есть значения, но строки надо скрывать невзирая на них). Спасибо. 9,72 Кб в архиве. |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
А просто автофильтром? Я сам — дурнее всякого примера! … |
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#3 16.08.2010 21:23:05 может как нибудь так? или наверное <> «» по первому столбцу
|
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Если именно ВБА, то: Public Sub RowsShow() Я сам — дурнее всякого примера! … |
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#5 16.08.2010 21:31:48 только через
|
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Или, если строго следовать заданию: Public Sub RowsShow() Я сам — дурнее всякого примера! … |
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#7 16.08.2010 21:40:38 ну да это меня клинит
|
|
Serge Пользователь Сообщений: 11308 |
Всем спасибо, но это конечно не решение… Кстати круче было бы не по кнопке скрывать строки, а по заполнению строк, реал тайм. |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Так? Я сам — дурнее всякого примера! … |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Соответсвенно: Я сам — дурнее всякого примера! … |
или так |
|
Serge Пользователь Сообщений: 11308 |
{quote}{login=KuklP}{date=16.08.2010 10:36}{thema=}{post}Так? ЗЫ Код медленно очень работает, можно к нему прогрессбар привинтить красивый? |
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#13 16.08.2010 22:46:44 lr = [A2].CurrentRegion.Rows.Count Сергей прокомментируй пж CurrentRegion
|
|
Serge Пользователь Сообщений: 11308 |
Ну, для меня разницы никакой. |
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#15 16.08.2010 22:55:04 это было ему KuklP
|
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Такая фенька не всегда срабатывает при последних скрытых строках. Я сознательно пошел другим путем. http://www.planetaexcel.ru/forum.php?thread_id=18295 Там о том же есть. Я сам — дурнее всякого примера! … |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Public Sub RowHide() Я сам — дурнее всякого примера! … |
Serge Пользователь Сообщений: 11308 |
{quote}{login=KuklP}{date=16.08.2010 10:59}{thema=}{post}Так быстрей.{/post}{/quote}Ага! То что надо. Спасибо Серёг! |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Вот так будет работать только если в столбец Н данные будут вводиться вручную. Я сам — дурнее всякого примера! … |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Но опять же, как ты внесешь данные в скрытую строку? Ерунда… 99550 Я сам — дурнее всякого примера! … |
Serge Пользователь Сообщений: 11308 |
{quote}{login=KuklP}{date=16.08.2010 11:15}{thema=}{post}Но опять же, как ты внесешь данные в скрытую строку? Ерунда…{/post}{/quote}Я ничего в скрытую строку вносить не собираюсь |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Вот так можно, но… Пробуй. 97337 Я сам — дурнее всякого примера! … |
Serge Пользователь Сообщений: 11308 |
А без Worksheet_Calculate() нельзя обойтись? |
yura68 Пользователь Сообщений: 17 |
Добрый день. Как при помощи VBA подкорректировать , Т.Е невсегда ячейки А10, B12 могут быть заполнены я в ячейках A10:A13 прописал знак =»» — работает |
k61 Пользователь Сообщений: 2441 |
|
yura68 Пользователь Сообщений: 17 |
Спасибо.Вариант отличный. А если все строки заполнены,то выдает ошибку, так как нет пустых строк. А как устранить эту ошибку? |
k61 Пользователь Сообщений: 2441 |
|
Diman1780 Пользователь Сообщений: 3 |
Есть файл, в котором есть 2 кнопки : «Скрыть» и «Отобразить». Писал макрос не я, потому ничего сказать о его содержимом не могу. Всё прекрасно работало. Добавлял строки и столбцы в таблицу….но в какой то момент просто перестал работать. Хотя в содержимое макроса не лазил нигде, кроме прописывания диапазона в котором и должно проверяться наличие/отсутствие содержимого ячеек. В данный момент скрываются абсолютно все солбцы(не важно пустые или нет), а строки наоборот: скрываются только на части диапазона. |
IGGI Пользователь Сообщений: 15 |
{quote}{login=Serge 007}{date=17.08.2010 12:03}{thema=}{post}А без Worksheet_Calculate() нельзя обойтись? Скажите пожалуйста, удалось решить проблему с отображением только тех строк, в которых выводится визуальная информация, с учетом вышеозвученного Serge 007? |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
#30 06.09.2012 19:13:34 Как понять — визуальная информация? |
Довольно часто появляется необходимость в Excel скрывать или отображать строки или столбцы. Особенно это актуально, когда на листе размещается очень много информации и часть из них является вспомогательной и требуется не всегда и тем самым загромождает пространство, ухудшая восприятие.
Если это приходится делать часто, то делать это с помощью меню неудобно, особенно если приходится скрывать и отображать разные столбцы и строки.
Видео: как скрыть или отобразить строки и столбцы в excel
Для существенного удобства можно написать простенький макрос, привязав его к кнопке и делать это одним щелком мыши.
Вот так выглядят простые примеры, с помощью которых Вы без труда сможете скрывать или отображать строки и столбцы с помощью VBA
Пример 1: Скрыть строку 2 в Excel
Пример 2: Скрыть несколько строк в Excel (строку 3-5)
Видео: Как скрыть и отобразить строки столбцы в microsoft Exel
Пример 3: Скрыть столбец 2 в Excel
Пример 4: Скрытие нескольких столбцов в Excel
Пример 5: Скрытие строки по имени ячейки в Excel
Пример 6: Скрытие нескольких строк по адресам ячеек
Видео: Как скрыть столбец или строку. Microsoft Excel для чайников
Пример 7: Скрытие столбца по имени ячейки
Пример 8: Скрытие нескольких столбцов по адресам ячеек Как видите процесс автоматического скрытия строк и столбцов очень прост, а применений данному приему огромное множество.
Для того, чтобы отобразить строки и столбцы в Excel вы можете воспользоваться этими же макросами, но вместе True необходимо указать False
Например, макрос для того, чтобы отобразить строку 2 будет выглядеть следующим образом:
Sub ViewString ()
Rows (2).Hidden = False
Надеемся, что данная статья была полезна вам и ответила на вопрос: как скрыть или отобразить строки и столбцы в Excel с помощью VBA