Как скрыть или отобразить строки и столбцы с помощью свойства 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
Спасибо за внимание.
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
- Excel VBA Скрыть столбцы
Excel VBA Скрыть столбцы
Скрытие и отображение столбцов в Excel — самая простая задача. И автоматизировать этот процесс даже легко. VBA Hide Column не требует огромного кода для написания. Но прежде чем мы начнем писать код для скрытия столбца в VBA, нам нужно понять несколько вещей и требований. Нам нужно знать имя столбца или последовательность, которую мы хотим скрыть, и диапазон ячейки, которая является необязательной.
Как скрыть столбцы в Excel VBA?
Мы научимся скрывать столбец в VBA с помощью нескольких примеров в Excel.
Вы можете скачать этот шаблон Excel VBA Hide Columns здесь — VBA Скрыть шаблон Excel Columns
Excel VBA Hide Column — Пример № 1
Для этого нам нужны данные в виде нескольких заполненных столбцов. Здесь у нас есть набор данных, в котором мы случайным образом взяли числа от 1 до 40 в разных 4 столбцах A, B, C и D соответственно, и все столбцы окрашены в разные цвета только для лучшего отображения на веб-странице.
Предположим, если мы хотим скрыть столбцы A и B, то сначала нам нужно выбрать оба столбца, как показано ниже.
Теперь щелкните правой кнопкой мыши и выберите « Скрыть», как показано ниже.
Выбранные столбцы будут скрыты после этого. Мы могли видеть только столбцы C и D с данными.
Теперь, если подобная работа может быть выполнена и макросом VBA. Для этого нам понадобится модуль. Перейдите в VBA и выберите модуль из списка меню «Вставка», как показано ниже.
В открывшемся модуле напишите подкатегорию VBA Hide Column, или мы можем выбрать любое другое имя в соответствии с нашим выбором, как показано ниже.
Код:
Sub Hide_Column () End Sub
Сначала выберите столбцы, которые нам нужно скрыть. Здесь мы скрываем столбец C.
Код:
Sub Hide_Column () Range ("C: C") End Sub
Поскольку мы хотим скрыть весь столбец C, выберите функцию FullColumn, а затем Hidden, как показано ниже.
Код:
Sub Hide_Column () Range ("C: C"). ВесьColumn.Hidden End Sub
Теперь, чтобы это произошло, мы можем выбрать ответ ИСТИНА или ЛОЖЬ. Если мы выберем Hidden как TRUE, тогда это будет скрывающая функция или если FALSE, тогда она будет работать как скрывающая функция. Поскольку мы хотим скрыть выбранные столбцы C из диапазона, мы бы выбрали здесь TRUE.
Код:
Sub Hide_Column () Range ("C: C"). FullColumn.Hidden = True End Sub
Теперь скомпилируйте код и запустите его, нажав кнопку Play, расположенную под строкой меню в VBA. Мы увидим, что столбец C теперь скрыт, теперь он показывает только столбцы A, B и D.
Если мы хотим скрыть более одного столбца вместе. Затем в диапазоне нам нужно выбрать эти столбцы, как показано ниже. Здесь мы выбираем столбцы B и C.
Код:
Sub Hide_Column () Range ("B: C"). FullColumn.Hidden = True End Sub
Теперь снова запустите код.
Здесь мы видим, столбцы B и C теперь скрыты. И только столбцы A и D видны.
Excel VBA Hide Column — Пример № 2
Вместо того, чтобы выбирать столбцы путем упоминания имени, мы также можем скрыть любой столбец по их последовательности. Во многих случаях этот процесс не является предпочтительным, поскольку мы можем легко узнать имя столбца, в котором находится столбец в алфавитном порядке. Этот процесс похож на код, который мы видели в примере № 1, где мы выбрали имя столбца как B и B: C, мы выберем порядковый номер, в котором расположен столбец. Если предположить, что мы хотим скрыть столбец A, используя код примера-1, нам просто нужно поместить порядковый номер, а не выбирать его с помощью Range.
Код:
Sub Hide_Column2 () Columns (1) .EntireColumn.Hidden = True End Sub
Теперь запустите этот код, нажав клавишу F5 или нажав кнопку Play. Мы увидим, столбец А, который находится на первой позиции, теперь скрыт.
Excel VBA Hide Column — Пример № 3
Есть еще один способ скрыть столбец, используя код VBA. Это также просто, как код, который мы видели в примере № 1. Для этого мы снова будем использовать те же данные, которые мы использовали в приведенном выше примере. Запишите подкатегорию под любым именем или именем выполняемой функции.
Код:
Sub Hide_Column3 () End Sub
Выберите любой диапазон столбца, который нам нужно скрыть. Здесь мы выбираем тот же столбец C.
Код:
Sub Hide_Column3 () Range ("C: C") End Sub
Чтобы активировать выбор необходимого столбца, выберите функцию « Столбцы», как показано ниже.
Код:
Sub Hide_Column3 () Range ("C: C"). Столбцы End Sub
Затем используйте скрытую команду, чтобы активировать функцию скрытия и отображения в VBA.
Код:
Sub Hide_Column3 () Range ("C: C"). Columns.Hidden End Sub
И выберите ИСТИНА, чтобы скрыть выбранный столбец, и ЛОЖЬ, чтобы скрыть выбранный скрытый столбец.
Код:
Sub Hide_Column3 () Range ("C: C"). Columns.Hidden = True End Sub
Столбец C, который был нашим столбцом диапазона, теперь скрыт.
Excel VBA Hide Column — Пример № 4
Есть еще один простой способ автоматизировать процесс скрытия столбцов в VBA. Для этого снова напишите подкатегорию в имени VBA Hide Columns.
Код:
Sub Hide_Column4 () End Sub
Прямо выберите столбец, который нам нужно скрыть. Здесь снова мы выбираем тот же столбец C.
Код:
Sub Hide_Column4 () Столбцы ("C") End Sub
И выберите скрытую команду как ИСТИНА, чтобы активировать процесс скрытия. Или выберите ЛОЖЬ, чтобы активировать процесс отображения.
Код:
Sub Hide_Column4 () Столбцы ("C"). Hidden = True End Sub
Посмотрим, колонка С снова скрыта.
Плюсы и минусы Excel VBA Скрыть столбец
- Процесс VBA Hide Column очень прост в реализации.
- Мы можем скрыть любой тип столбца Range, будь то в последовательности или в случайных позициях.
- Поскольку процесс VBA Hide Column прост в применении, но в ручном режиме, он также прост, как в коде VBA. Таким образом, это не вносит большой вклад в экономию. Настоятельно рекомендуется только тогда, когда мы работаем над написанием огромного кода.
То, что нужно запомнить
- Мы скрываем и отображаем столбец с помощью некоторого кода VBA. Для отображения, используйте FALSE вместо TRUE для функциональной цели.
- Порядковый номер столбца также позволяет скрыть столбец, кроме выбора имени столбца, которое упоминается в алфавитном порядке.
Рекомендуемые статьи
Это руководство к VBA Hide Columns. Здесь мы обсудим, как скрыть столбцы в Excel, используя код VBA, а также приведем практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи —
- Рабочие листы в Excel VBA
- Группировка столбцов в Excel (примеры)
- Как создать пользовательскую форму в Excel VBA?
- Как переместить столбцы в Excel?
На чтение 4 мин. Просмотров 224 Опубликовано 24.02.2021
У меня есть рабочий лист со значениями в столбцах B: G. На том же листе в ячейке A1 я создал раскрывающийся список, используя проверку данных со значениями, такими как A, B и C.
Мне нужно, когда я выбираю значение ячейки A, а затем столбцы B: C должны быть видимыми, а другие столбцы должны быть скрыты от D: G. Таким же образом, если я выберу B из списка, мне нужно просмотреть столбцы D: E и B: C и F: G, которые должны быть скрыты.
Не могли бы вы помочь мне в этом.
Примечание. Я плохо разбираюсь в VBA.
Попробуйте следующее:
- Откройте редактор VBA (
ALT + F11
). - Дважды щелкните
Sheet1
- Выберите
Рабочий лист
в верхнем левом раскрывающемся списке иИзменить
в верхнем правом раскрывающемся списке - Вставьте этот код
NB – это предполагает, что проверка данных находится в ячейке A1
Private Sub Worksheet_Change (ByVal Target As Range) Уменьшить все столбцы как диапазон Установить allColumns = Columns ("B: G") allColumns.Hidden = True, если не пересекаются (Target, Range ("A1")) Ничего, то если Target.Value = "A", то столбцы ("B: C "). Hidden = False ElseIf Target.Value =" B "Then Columns (" D: E "). Hidden = False ElseIf Target.Value =" C "Then//Добавьте сюда дополнительную логику End If End IfEnd Sub код>
Перейти к просмотру -> макросы.
Нажмите раскрывающийся список и сделайте «запись нового макроса». Щелкните правой кнопкой мыши заголовок столбца и выполните скрыть столбец.
Затем отобразить столбец. Выполнить макросы-> остановить запись. Макросы -> Просмотреть макросы Нажмите кнопку редактирования.
вы получите следующий код:
Столбцы ("C: C"). SelectSelection.EntireColumn.Hidden = TrueSelection.EntireColumn.Hidden = False
Теперь вы знаете, как скрыть и показать столбцы. Сначала вы выбираете столбец, затем устанавливаете Hidden = true или false.
Google: макрос Excel при изменении значения ячейки
Щелкните первую ссылку: http://support .microsoft.com/kb/213612
Возьмите код из этой ссылки и прочтите комментарии:
Private Sub Worksheet_Change (ByVal Target As Range ) Dim KeyCells As Range 'Переменная KeyCells содержит ячейки, которые будут вызывать предупреждение при их изменении. Установите KeyCells = Range ("A1: C10") If Not Application.Intersect (KeyCells, Range (Target.Address)) _ Is Nothing Then "Отображать сообщение, когда одна из назначенных ячеек была изменена". 'Разместите здесь свой код. MsgBox «Ячейка» & Target.Address & «изменилась». End IfEnd Sub
Убедитесь, что вы внимательно прочитали ссылку. И следуйте инструкциям. Иногда я тороплюсь и упускаю важные детали.
Дайте мне знать, достаточно ли этого или вам нужна дополнительная помощь.
ответил 24 мая ’14 в 11:44
-
Дерек, Спасибо за ответ. Скоро подтвердим статус – user3671568, 24 мая 2014, 17:59
добавить комментарий |
Перейти к просмотру -> макросы.
Нажмите раскрывающийся список и сделайте «запись нового макроса». Щелкните правой кнопкой мыши заголовок столбца и скрыть столбец.
Затем отобразите столбец. Сделайте макросы-> остановите запись. Макросы -> Просмотреть макросы Нажмите кнопку редактирования.
вы получите следующий код:
Столбцы ("C: C"). SelectSelection.EntireColumn.Hidden = TrueSelection.EntireColumn.Hidden = False
Теперь вы знаете, как чтобы скрыть и показать столбцы. Сначала вы выбираете столбец, затем устанавливаете Hidden = true или false.
Google: макрос Excel при изменении значения ячейки
Щелкните первую ссылку: http://support .microsoft.com/kb/213612
Возьмите код из этой ссылки и прочтите комментарии:
Private Sub Worksheet_Change (ByVal Target As Range ) Dim KeyCells As Range 'Переменная KeyCells содержит ячейки, которые будут вызывать предупреждение при их изменении. Установите KeyCells = Range ("A1: C10") If Not Application.Intersect (KeyCells, Range (Target.Address)) _ Is Nothing Then "Отображать сообщение, когда одна из назначенных ячеек была изменена". 'Разместите здесь свой код. MsgBox «Ячейка» & Target.Address & «изменилась». End IfEnd Sub
Убедитесь, что вы внимательно прочитали ссылку. И следуйте инструкциям. Иногда я тороплюсь и упускаю важные детали.
Дайте мне знать, достаточно ли этого или вам нужна дополнительная помощь.
Содержание
- Скрыть столбцы с помощью VBA в Excel
- Скрыть один или несколько столбцов на листе
- Скрытие столбцов в диапазоне
- Сделать столбец xlVeryHidden
Скрыть столбцы с помощью VBA в Excel
Скрыть один или несколько столбцов на листе
Скрыть столбец очень просто. Код ниже скрывает столбец C на активном листе. Если установить для свойства Hidden
значение False
, столбец снова станет видимым.
Columns ("D ") .Hidden = True
Код ниже скрывает несколько столбцов (D. E и F).
Columns (" D : F "). Hidden = True
Скрытие столбцов в диапазоне
При запуске с диапазона, который не является полным столбцом, вы получите ошибку времени выполнения« 1004 »: невозможно установить свойство Hidden класса Range.
Dim rng As Range: Set rng = Application.Range ("B2") rng.Hidden = True
Вы можете исправить это, применив весь столбец к диапазону:
Dim rng As Range: Установить rng = Application.Range ("B2") rng.EntireColumn. Hidden = True
xlVeryHidden не поддерживается для столбцов. Обходной путь – скрыть его, а затем защитить лист.