Как скрыть или отобразить строки и столбцы с помощью свойства 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
Легко скрыть или отобразить именованный диапазон с помощью Kutools for Excel
Скрыть или отобразить все именованные диапазоны с кодом VBA
В Excel нет другого пути, кроме как использовать коды VBA для скрытия или отображения всех именованных диапазонов. Вы можете скопировать следующие коды, чтобы скрыть или показать имена диапазонов в книге.
1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
VBA: скрыть все именованные диапазоны в Excel
Sub HideNames()
'Update 20140318
Dim xName As Name
For Each xName In Application.ActiveWorkbook.Names
xName.Visible = False
Next
End Sub
3. Затем нажмите F5 ключ для запуска этого кода, и все названные диапазоны в вашей книге были скрыты. Смотрите скриншоты:
Для отображения всех скрытых именованных диапазонов в Excel запустите приведенный ниже код VBA:
VBA: отображение всех именованных диапазонов в Excel
Sub ShowNames()
'Update 20140318
Dim xName As Name
For Each xName In Application.ActiveWorkbook.Names
xName.Visible = True
Next
End Sub
Легко скрыть или отобразить именованный диапазон с помощью Kutools for Excel
Помимо приведенных выше кодов VBA, здесь я рекомендую Скрыть / показать имя диапазона полезности Kutools for Excel. С помощью этой утилиты вы можете легко скрыть или показать определенные именованные диапазоны в своей книге.
1. Нажмите Кутулс > Инструменты имени > Скрыть / показать имя диапазона. Смотрите скриншот:
2. в Скрыть / показать имя диапазона диалоговое окно, вы можете увидеть, что все именованные диапазоны в вашей книге перечислены в Список имен пунктом.
Вы можете снять флажок с определенного имени диапазона в Список имен поле, чтобы скрыть имя диапазона, или отметьте имя диапазона, чтобы отобразить его в книге. Смотрите скриншот:
Как показано на скриншоте выше, имена диапазонов Добавить_диапазон и Лист1_диапазон будет отображаться в книге, но непроверенные имена диапазонов Новый_диапазон1 и Тест_диапазон будет скрыто. Смотрите скриншот:
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Легко скрыть или отобразить именованный диапазон с помощью Kutools for Excel
Статьи по теме:
- Как быстро удалить все именованные диапазоны в Excel?
- Как перечислить именованные диапазоны в Excel?
- Как создать динамический именованный диапазон в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (1)
Номинальный 5 из 5
·
рейтинги 1
gribnick75 Пользователь Сообщений: 19 |
#1 28.10.2019 16:56:10 Прошу прощения за, возможно, дурацкий вопрос Есть именованный диапазон строк уровня книги
Как в vba в макросе листа 2 — скрыть или показать этот диапазон? |
||
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
#2 28.10.2019 17:09:02 Range(«myrows»)
Изменено: БМВ — 28.10.2019 17:25:05 По вопросам из тем форума, личку не читаю. |
||
Hellmaster Пользователь Сообщений: 208 |
#3 28.10.2019 17:09:57 gribnick75,
|
||
Hellmaster Пользователь Сообщений: 208 |
#4 28.10.2019 17:17:22 Либо вот так
а потом уже скрывать или раскрывать
|
||||
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
#5 28.10.2019 17:27:45 Hellmaster,
!!! По вопросам из тем форума, личку не читаю. |
||
Hellmaster Пользователь Сообщений: 208 |
#6 28.10.2019 17:30:02
а в чем тогда разница? |
||||
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
В том что Mrows в одном случае это имя уровня книги, которое определили пользователь «через F3″| , а во втором объект Range. Только и всего. По вопросам из тем форума, личку не читаю. |
Тогда прошу прощения за незнание. Можно ссылочку, если не сложно, чтобы я изучил этот момент? |
|
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
Ссылочку на что? На Range Object? https://docs.microsoft.com/en-us/office/vba/api/excel.range(object) Пример 3 Изменено: БМВ — 28.10.2019 17:46:22 По вопросам из тем форума, личку не читаю. |
БМВ,таки я не понял тогда. Я ошибся в задании Range, тем что начал с листа, а не с книги или я ошибся в скрытии строк? |
|
gribnick75 Пользователь Сообщений: 19 |
#11 28.10.2019 17:52:49
Видимо ошибка у меня где-то в другом На листе 1 есть макрос следующего вида
range_subfloor_house — задана через f3 для Листа 2 =’Лист2′!$15:$21 При срабатывании идет ошибка Method Range of object — ‘_Worksheet’ failed как раз на строках Range(«range_subfloor_house»).entryRows.Hidden = True / False Изменено: gribnick75 — 28.10.2019 18:19:47 |
||||
Hellmaster Пользователь Сообщений: 208 |
#12 28.10.2019 17:56:17
|
||||
БМВ Модератор Сообщений: 21383 Excel 2013, 2016 |
Область строк определена не 15-21, а задана в имени myrows и может быть другой. моему варианту важно только это имя, что и просил ТС. В вашем случае макрос жестко заточен под номера строк. По вопросам из тем форума, личку не читаю. |
gribnick75 Пользователь Сообщений: 19 |
#14 28.10.2019 17:58:25
поправил уже, результат тот же |
||
БМВ, спасибо. Изучу этот момент |
|
gribnick75 Пользователь Сообщений: 19 |
Эх… дяденьки простите тупицу ))))))))))) face palm БМВ — спасибо за помощь PS тем не менее внутри Sub Worksheet_Change(ByVal Target As Range) все равно ругается Пришлось сделать отдельную функцию в модуле и дергать ее. Изменено: gribnick75 — 28.10.2019 19:42:14 |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#17 28.10.2019 20:03:52
возможно, надо было так:
или так:
или так:
но с файлом диагностировать причину было бы сподручнее. Изменено: Дмитрий(The_Prist) Щербаков — 28.10.2019 20:12:17 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||||
gribnick75 Пользователь Сообщений: 19 |
#18 29.10.2019 10:29:21
Так работает, спасибо |
||
Скрыть диапазоны строк по условию ИЛИ 0 и ИЛИ «» |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Довольно часто появляется необходимость в 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
Спасибо за внимание.
How do I hide a range in VBA Excel 2010?
For example i want to hide
range(«A1:A3»)
some help would be appreciated
Chrismas007
6,0654 gold badges23 silver badges47 bronze badges
asked May 2, 2016 at 20:32
2
1 Answer
You can’t hide a range with these dimensions in Excel. Excel allows hiding complete rows or complete columns, but not just a few cells in a column.
answered May 3, 2016 at 2:51
teylynteylyn
34.1k4 gold badges52 silver badges72 bronze badges
Hiding is simple, but you need to understand the concept here. To hide the column using VBA, we need to determine which column we need to hide. To specify the column to be hidden, we need to use the RANGE objectRange is a property in VBA that helps specify a particular cell, a range of cells, a row, a column, or a three-dimensional range. In the context of the Excel worksheet, the VBA range object includes a single cell or multiple cells spread across various rows and columns.read more.
Table of contents
- Excel VBA Hide Columns
- How to Hide Columns in VBA?
- Example #1 – Hide using Range Object
- Example #2 – Hide using Columns Property
- Example #3 – Hide Multiple Columns
- Example #4 – Hide Columns with Single Cell
- Example #5 – Hide Every Alternative Column
- Example #6 – Hide Every Empty Column
- Example #7 – Hide Columns Based On Cell Value
- Recommended Articles
- How to Hide Columns in VBA?
Range("A:A")
Then, we need to use the Property “Entire Column.”
Range("A:A").EntireColumn
We need to use the “Hidden” property in the column property.
Range("A:A").EntireColumn.Hidden
Then, we need to set the Hidden property to TRUE.
Range("A:A").EntireColumn.Hidden = TRUE
It will hide column A.
How to Hide Columns in VBA?
We can hide columns in several ways. We can hide a column using a Range object using the CELLS propertyCells are cells of the worksheet, and in VBA, when we refer to cells as a range property, we refer to the same cells. In VBA concepts, cells are also the same, no different from normal excel cells.read more. We need to construct our VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more based on the method we use.
You can download this VBA Hide Columns Excel Template here – VBA Hide Columns Excel Template
Example #1 – Hide using Range Object
If you want to hide a particular column, then specify the column inside the RANGE object. For example, look at the below data.
Now, we will hide the entire column A using the following code.
Code:
Sub Range_Hide() Range("A:A").EntireColumn.Hidden = True End Sub
So, when we run the code, we will get the following result.
Example #2 – Hide using Columns Property
If you want to hide the column using the Columns property, then the below code is for you.
Code:
Sub Range_Hide() Columns("B").Hidden = True End Sub
It will hide column B. Here, you must be thinking about where the Entire Column property is. When you use the Columns property, it is unnecessary to use the Entire Column property.
We can still use the Entire Column property but not necessarily required. And code for the same is given below.
Code:
Sub Columns_Hide() Columns("B").EntireColumn.Hidden = True End Sub
It also should work fine.
We can use the column number as well instead of an alphabetic reference. And code for the same is given below.
Code:
Sub Columns_Hide() Columns(4).EntireColumn.Hidden = True End Sub
It will hide Column D.
Example #3 – Hide Multiple Columns
We can hide multiple columns at a time as well. We need to mention the first and the last column so that in between columns also will be hidden. Using the following code to hide multiple columns for the same data as example #1.
Code:
Sub Columns_Hide() Range("A:C").EntireColumn.Hidden = True End Sub
It will hide column A to C.
We can also use the following code to hide multiple columns in Excel VBA.
Code:
Sub Multi_Columns_Hide() Columns("A:C").EntireColumn.Hidden = True End Sub
The above methods will hide the first three columns: A, B, and C.
Example #4 – Hide Columns with Single Cell
We can also hide a column based on a single cell referenceCell reference in excel is referring the other cells to a cell to use its values or properties. For instance, if we have data in cell A2 and want to use that in cell A1, use =A2 in cell A1, and this will copy the A2 value in A1.read more. We do not need to give the full column reference to hide the column. With just a single cell reference, we should be able to hide a column.
Code:
Sub Single_Hide() Range("A5").EntireColumn.Hidden = True End Sub
It will hide the entire column A.
Example #5 – Hide Every Alternative Column
Assume you have data, something like the below image.
We need to hide every alternative column, which is blank. We need to use loops; the below code will do the job for us.
Code:
Sub AlternativeColumn_Hide() Dim k As Integer For k = 1 To 7 Cells(1, k + 1).EntireColumn.Hidden = True k = k + 1 Next k End Sub
It will hide every alternate column.
Example #6 – Hide Every Empty Column
In the previous example, every other alternative column was blank. So we have hidden it easily. But look at the below data.
Here, the empty columns pattern is not standard. In these cases, the below code will hide all the empty columns. It does not matter what the pattern is.
Code:
Sub Column_Hide1() Dim k As Integer For k = 1 To 11 If Cells(1, k).Value = "" Then Columns(k).Hidden = True End If Next k End Sub
When you run the code, you will get the result as follows.
Example #7 – Hide Columns Based On Cell Value
Now we will see how to hide columns based on the cell value. For example, look at the below data.
Here, we want to hide all the columns if the heading is “No.” The below code will do it for me.
Code:
Sub Column_Hide_Cell_Value() Dim k As Integer For k = 1 To 7 If Cells(1, k).Value = "No" Then Columns(k).Hidden = True End If Next k End Sub
When you run the code, you will get the result as follows.
Recommended Articles
This article has been a guide to VBA Hide Columns. Here, we discuss hiding columns in VBA Excel and the practical examples and downloadable Excel sheets. You can learn more about VBA from the following articles: –
- What is Intersect in Excel VBA?
- Change Directory in VBA
- VBA Collections
- InputBox in VBA