VBA для скрытия строк в Excel (14 методов)

  • Поделись Этим
Hugh West

Оглавление

Иногда нам нужно скрыть некоторые определенные строки при работе с большим набором данных в Excel для лучшей читабельности. Внедрение макрос VBA это самый эффективный, быстрый и безопасный метод выполнения любых операций в Excel. В этой статье мы покажем вам, как скрывать строки в Excel на основе различных критериев с помощью макроса VBA.

Скачать рабочую тетрадь

Вы можете скачать бесплатную практическую рабочую тетрадь Excel отсюда.

Скрытие строк с помощью VBA.xlsm

14 методов с помощью VBA для скрытия строк в Excel

В этом разделе мы обсудим 12 различных методов с VBA на скрыть строки в Excel. Пример, который мы будем использовать на протяжении всей статьи, показан ниже.

1. Встраивание VBA для скрытия одной строки в Excel

Если вы хотите скрыть один ряд с VBA затем выполните следующие шаги. В нашем случае, мы будем скрыть строку номер 5 ( Фамилия ) из нашего набора данных.

Шаги:

  • Нажмите Alt + F11 на клавиатуре или перейдите на вкладку Разработчик -> Visual Basic открыть Редактор Visual Basic .

  • Во всплывающем окне кода в строке меню нажмите кнопку Вставка -> Модуль .

  • Скопируйте следующий код и вставьте его в окно кода.
 Sub HideSingleRow() Worksheets("Single").Range("5:5").EntireRow.Hidden = True End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • Worksheets("Single") = Установить название рабочего листа.
  • Range("5:5") = Пропуск ряд № 5 внутри Диапазон метод.

  • Нажмите F5 на клавиатуре или в строке меню выберите Run -> Run Sub/UserForm Вы также можете просто нажать на маленький значок Play в строке подменю, чтобы запустить макрос.

Обратите внимание на изображение ниже, ряд № 5 скрывается после выполнения VBA код.

Читать далее: Формула для скрытия строк в Excel (7 методов)

2. Вставка макроса для скрытия смежных строк в Excel

Вы узнали, как скрыть один ряд с помощью функции VBA Но предположим, вы хотите скрыть ряд строк которые смежные Вы тоже можете сделать это с помощью VBA в Excel. Мы будем скрыть ряды с 5 по 7 из нашего набора данных, показанного выше.

Шаги:

  • Так же, как и раньше, откройте Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideContiguousRows() Worksheets("Contiguous").Range("5:7").EntireRow.Hidden = True End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • Worksheets("Contiguous") = Установить название рабочего листа.
  • Range("5:7") = Пропуск ряд с 5 по 7 внутри Диапазон метод.

  • Запускайте этот код и видим на следующем рисунке, что ряды с 5 по 7 теперь скрыты.

Читать далее: Как скрывать и скрывать строки в Excel (6 самых простых способов)

3. Встраивание макроса для выделения несмежных строк

На этот раз вы узнаете, как скрыть строки в Excel, которые несмежные с VBA С нашим набором данных, код для скрыть ряды 5, 6, 8 и 9 приведены ниже.

Шаги:

  • Как было показано ранее, открытые Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideNonContiguousRows() Worksheets("Non-Contiguous").Range("5:6, 8:9").EntireRow.Hidden = True End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • Worksheets("Non-Contiguous") = Установить название рабочего листа.
  • Range("5:6, 8:9") = Пропуск ряд с 5 по 6 и 8 - 9 внутри Диапазон метод.

  • Запускайте этот кусок кода и увидеть, что ряды 5 - 6 и 8 - 9 скрыты на следующем рисунке.

Читать далее: Как скрыть строки в Excel (6 эффективных методов)

4. Макрос для скрытия всех строк, содержащих текст в Excel

Если вы хотите скрыть все строки, содержащие текст значения, затем выполните следующие действия.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideAllRowsContainsText() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 1 To LastRow 'Перебираем каждую строку и проверяем требуемое условие 'Чтобы скрыть все строки с текстовыми данными If IsNumeric(Range("C" & i)) = False Then Rows(i).EntireRow.Hidden = True Next End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • IsNumeric(Range("C" & i)) = Данные в нашем наборе данных начинаются с колонка C, так что мы прошли C внутри Диапазон метод.

  • Запускайте этот код, и вы заметите все ряды которые были содержащий текст значения теперь скрыты.

Читать далее: Как скрыть несколько строк в Excel (9 методов)

5. Макрос для маскировки всех строк, содержащих числа в Excel

И если вы хотите спрятаться все строки, содержащие числовые значения с VBA код, затем выполните следующие действия.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideAllRowsContainsNumbers() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы устанавливаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть все строки с числовыми данными If IsNumeric(Range("C" & i)) = True Then Rows(i).EntireRow.Hidden = True Next End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • IsNumeric(Range("C" & i)) = Данные в нашем наборе данных начинаются с колонка C, так что мы прошли C внутри Диапазон метод.

  • Запускайте этот код и обратите внимание, что все ряды которые были содержащие числовые значения раньше были скрыты.

Читать далее: Скрытие дублирующихся строк на основе одного столбца в Excel (4 метода)

6. Макрос для скрытия строк, содержащих ноль (0) в Excel

Предположим, вы хотите скрыть только те строки из определенного столбца, которые являются удерживая 0 (ноль) Посмотрите на следующий набор данных, где Колонка E держит 0 в ряд 7 и 82 в ряду 10 Мы узнаем, как скрыть только тот ряд, который содержит 0 ( ряд 7 ) с VBA в Excel.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsZero() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы устанавливаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую 0 в колонке E If Range("E" & i) = 0 Then Rows(i).EntireRow.Hidden = True Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот код и обратите внимание, что строка ( ряд 7 ), которые содержали 0 в колонка E теперь скрыта, тогда как ряд 10 который несет 82 не скрывается.

Читать далее: Как скрыть пустые строки в Excel VBA (4 полезных метода)

7. Внедрение макроса для скрытия строк с отрицательными значениями в Excel

Точно так же, как вы можете скрыть строки, содержащие ноль из одного столбца, вы можете скрывать строки, содержащие отрицательные значения также. В приведенном ниже наборе данных, где колонка E содержит как отрицательные, так и положительные значения, мы увидим код, скрывающий только отрицательное значение.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsNegative() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы устанавливаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую отрицательные значения в столбце E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот код и обратите внимание, что ряд 7 которая содержала отрицательное значение (-10) в колонка E теперь скрыта, тогда как ряд 10 который несет 82 не скрывается.

8. Встраивание VBA для скрытия строк с положительными значениями в Excel

На этот раз с приведенным ниже набором данных, где колонка E содержит оба нулевых положительных значения, мы увидим, что VBA код, который скрывает только положительный .

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsPositive() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы задаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую положительные значения в столбце E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот код и обратите внимание, что ряд 7 которая содержала положительное значение (55) в колонка E теперь скрыта, тогда как ряд 10 который несет 0 не скрывается.

Читать далее: VBA для скрытия строк на основе значения ячейки в Excel (14 примеров)

9. Макрос для скрытия строк с нечетными числами в Excel

Вы можете скрывать строки с нечетными номерами в качестве их значения. В примере, который мы показали в начале статьи, колонка E держит как четные, так и нечетные числа в ряды 7 и 10 Мы узнаем код скрытие строки который держит нечётные числа только.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsOdd() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем требуемое условие 'Мы задаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую положительные значения в столбце E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) Mod 2 = 1 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот кусок кода и увидеть, что только ряд 7 которая содержала нечетное число (55) в колонка E теперь скрыта, тогда как ряд 10 который несет четное число (82) не скрывается.

10. VBA для скрытия строк, содержащих четные числа в Excel

Аналогично, вы можете скрыть строки с четными номерами в качестве их значения. В примере, который мы показали в начале статьи, колонка F держит как четные, так и нечетные числа в ряды 7 и 10 Мы узнаем код скрытие строки который держит чётные числа только.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsEven() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы задаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую положительные значения в столбце F If IsNumeric(Range("F" & i)) = True Then If Range("F" & i) Mod 2 = 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот код и увидеть, что только ряд 7 которая содержала четное число (100) в колонка F теперь скрыта, тогда как ряд 10 который несет нечетное число (75) не скрывается.

Читать далее: Excel VBA: скрыть все строки в Excel (5 практических примеров)

11. Вставка макроса для скрытия строк, превышающих определенное условие

Вы можете скрыть строки, которые больше конкретное значение с VBA Excel. Предположим, вы хотите скрыть строки из колонка E где значение более 80 Вот как это сделать:

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsGreater() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы задаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую положительные значения в столбце E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот код и увидеть, что только ряд 10 который содержал 82 (что больше 80) в колонка E теперь скрыта, тогда как ряд 7 который несет 55 не скрывается.

Читать далее: Скрытие строк на основе значения ячейки с помощью условного форматирования в Excel

12. Встраивание макроса для закрытия строк, которые меньше определенного условия в Excel

Вы также можете скрыть строки, которые меньше конкретное значение с VBA Excel. Предположим, вы хотите скрыть строки из колонка E где значение менее 80 Вот как это сделать:

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowContainsLess() LastRow = 1000 'Предположим, что в наборе данных 1000 строк For i = 4 To LastRow 'Перебираем каждую строку и проверяем необходимое условие 'Мы задаем i = 4, потому что наши данные начинаются с 4-й строки 'Чтобы скрыть строку, содержащую положительные значения в столбце E If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

Теперь ваш код готов к выполнению.

  • Запускайте этот код и увидеть, что только ряд 7 который содержал 55 (что меньше 80) в колонка E теперь скрыта, тогда как ряд 10 то есть переноска 82 не скрывается.

13. Скрытие строк на основе значения текста ячейки с помощью макроса

Предположим, вы хотите скрыть строку, содержащую определенный текст значение. В нашем случае мы приведем пример со строкой, содержащей слово " Химия ", ряд 6 и предоставит вам код, как скрыть эту строку.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowCellTextValue() StartRow = 4 LastRow = 10 iCol = 4 For i = StartRow To LastRow If Cells(i, iCol).Value "Chemistry" Then Cells(i, iCol).EntireRow.Hidden = False Else Cells(i, iCol).EntireRow.Hidden = True End If Next i End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • StartRow = 4 -> Первый ряд набора данных.
  • LastRow = 10 -> Последний ряд набора данных.
  • iCol = 4 -> The адрес столбца что содержит текст ценность.

  • Запускайте этот код и обратите внимание, что ряд № 6 который состоит из слова " Химия " скрыта.

14. Макрос для скрытия строк на основе числового значения ячейки в Excel

Ранее вы уже видели, как скрыть строку на основе текстового значения ячейки, в этот раз вы узнаете, как сделать это, когда числовое значение В нашем случае мы приведем пример со строкой, содержащей числовое значение " 87 ", ряд 7 и предоставит вам код, как скрыть эту строку.

Шаги:

  • Открыть Редактор Visual Basic из Разработчик вкладка и Вставка a Модуль в окне кода.
  • В окне кода скопируйте следующий код и вставьте его.
 Sub HideRowCellNumValue() StartRow = 4 LastRow = 10 iCol = 4 For i = StartRow To LastRow If Cells(i, iCol).Value "87" Then Cells(i, iCol).EntireRow.Hidden = False Else Cells(i, iCol).EntireRow.Hidden = True End If Next i End Sub 

Теперь ваш код готов к выполнению.

Вот,

  • StartRow = 4 -> Первый ряд набора данных.
  • LastRow = 10 -> Последний ряд набора данных.
  • iCol = 4 -> The адрес столбца что содержит текст ценность.

  • Запускайте этот код и обратите внимание, что ряд № 7 который состоит из числового значения " 87 " скрыта.

Читать далее: Как скрыть строки на основе значения ячейки в Excel (5 методов)

Заключение

В этой статье вы узнали, как скрыть строки в Excel с VBA Я надеюсь, что эта статья была очень полезна для вас. Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы по этой теме.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.