Note: The other languages of the website are Google-translated. Back to English

Как отфильтровать список и удалить остальные скрытые или видимые строки в Excel?

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

Удалить скрытые строки на активном листе с кодом VBA
Удалить видимые строки отфильтрованного списка с выделением всех видимых ячеек
Легко удаляйте скрытые или видимые строки отфильтрованного списка с помощью Kutools for Excel


Удалить скрытые строки на активном листе с кодом VBA

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

1. Активируйте рабочий лист, который вам нужен для удаления скрытых строк, нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. В окне Microsoft Visual Basic для приложений щелкните Вставить > Модули. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: удалить скрытые строки

Sub RemoveHiddenRows()
	Dim xRow As Range
	Dim xRg As Range
	Dim xRows As Range
	On Error Resume Next
	Set xRows = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
	If xRows Is Nothing Then Exit Sub
		For Each xRow In xRows.Columns(1).Cells
			If xRow.EntireRow.Hidden Then
				If xRg Is Nothing Then
					Set xRg = xRow
				Else
					Set xRg = Union(xRg, xRow)
				End If
			End If
		Next
		If Not xRg Is Nothing Then
			MsgBox xRg.Count & " hidden rows have been deleted", , "Kutools for Excel"
			xRg.EntireRow.Delete
		Else
			MsgBox "No hidden rows found", , "Kutools for Excel"
		End If
	End Sub

3. нажмите F5 ключ для запуска кода. Если на активном листе есть скрытые строки, после запуска кода появится диалоговое окно, в котором будет указано, сколько скрытых строк было удалено. Щелкните значок OK кнопку, чтобы удалить скрытые строки. Смотрите скриншот:

документ удалить остаток 1

В противном случае после запуска кода вы получите следующее диалоговое окно.

документ удалить остаток 1

Внимание: приведенный выше код VBA не только может удалять скрытые строки отфильтрованного списка, но также удалять скрытые строки, которые вы ранее скрывали вручную.


Удалить видимые строки отфильтрованного списка с выделением всех видимых ячеек.

Чтобы удалить видимые строки отфильтрованного списка, сделайте следующее.

1. Выберите все отфильтрованные строки и нажмите F5 , чтобы открыть Перейти к диалоговое окно, затем щелкните Особый кнопка. Смотрите скриншот:

документ удалить остаток 1

2. в Перейти к специальному диалоговое окно, проверьте Только видимые ячейки вариант, а затем щелкните OK кнопку.

документ удалить остаток 1

3. Теперь все видимые строки выделены, щелкните выделение правой кнопкой мыши и затем щелкните Удалить строки.

документ удалить остаток 1

До сих пор все видимые строки удаляются из отфильтрованного списка.


Легко удаляйте скрытые или видимые строки отфильтрованного списка с помощью Kutools for Excel

Вышеупомянутые два метода могут не быть желанными решениями для многих пользователей Excel, здесь мы представляем вам удобный инструмент. Для Удалить скрытые (видимые) строки и столбцы полезности Kutools for Excel, вы можете легко удалить скрытые строки в выбранном диапазоне / листах, активном листе или всех листах в Excel.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Если вы хотите удалить только скрытые или видимые строки отфильтрованного списка, выберите отфильтрованный диапазон вручную, а затем нажмите Кутулс > Удалить > Удалить скрытые (видимые) строки и столбцы. Смотрите скриншот:

2. в Удалить скрытые (видимые) строки и столбец диалоговое окно, оставьте В выбранном диапазоне выбранный в Заглянуть раскрывающийся список (вы можете выбрать другие варианты по своему усмотрению), отметьте Ряды вариант в Удалить тип раздел, а в Подробный тип раздел, проверка Видимые строки or Скрытые строки вариант как вам нужно. И, наконец, нажмите кнопку OK кнопку.

3. Затем появится диалоговое окно, в котором указано, сколько строк было удалено. Щелкните значок OK кнопку.

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Удалите скрытые или видимые строки отфильтрованного списка с помощью Kutools for Excel


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (7)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Отзыв о: макрос для удаления скрытых строк - это занимает слишком много времени для работы с 900 тыс. строк, чтобы быть полезным. 2+ часа на OC'd Threadripper 1950X и все еще работает (пришлось завершить задачу). Есть ли способ оптимизировать его для использования нескольких ядер или это ограничение VBA?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Код был оптимизирован. Пожалуйста, попробуйте. Спасибо за ваш комментарий.

Sub RemoveHiddenRows()
Dim xFlag как логическое значение
Dim xStr, xTemp как строка
Dim xDiv, xMod As Long
Dim I, xCount, xRows As Long
Dim xRg, xCell, xDRg как диапазон
Dim xArr() как строка
On Error Resume Next
Приложение.ScreenUpdating = False
Application.EnableEvents = False
Установите xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
Если xRg ничего не значит, выйдите из Sub
xRows = xRg.Rows.Count
Установите xRg = xRg (1)
xFlag = Истина
хТемп = ""
хСчетчик = 0
Для I = 1 в xRows
Установите xCell = xRg.Offset (I - 1, 0)
Делать, пока xFlag
Если xCell.EntireRow.Hidden Тогда
xStr = xCell.Адрес
xFlag = Ложь
Еще
Перейти к пункту
End If
Петля
Если xCell.EntireRow.Hidden Тогда
xTemp = xStr & "," & xCell.Address
End If
Если Лен(хТемп) > 171 Тогда
xCount = xCount + 1
ReDim сохранить xArr (от 1 до xCount)
xArr(xCount) = xStr
xStr = xCell.Адрес
Еще
хСтр = хТемп
End If
Корр.:
Далее
xCount = xCount + 1
ReDim сохранить xArr (от 1 до xCount)
xArr(xCount) = xStr
Для I = xCount до 1 Шаг -1
Если я = 1 Тогда
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
Еще
хСтр = хАрр(I)
End If
Если xDRg ничего, тогда
Установите xDRg = диапазон (xStr)
Еще
Установите xDRg = Union (xDRg, Range (xStr))
End If
Если (Len(xDRg.Address) >= 244) Или (xCount = 1) Тогда
xDRg.EntireRow.Delete
Установить xDRg = Ничего
End If
Далее
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Потрясающе, спасибо! Рассмотрю при следующей возможности/необходимости и отвечу.
Этот комментарий был сведен к минимуму модератором на сайте
Код VBA для удаления скрытых строк работал отлично, без возни. БЛАГОДАРЮ ВАС!!
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за информацию. Это было поучительно. Пожалуйста, есть ли способ фильтровать и удалять определенные числа в строках до 1 миллиона? Можно ли изменить приведенный выше код для этого?
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Извините, не тестировал код в таких огромных строках данных. Может быть, вы можете сделать копию своих данных и проверить, может ли код работать.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, этот код VBA очень полезен.
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL