Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

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

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

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

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

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel переносит расширенные функции 300 в Excel и мгновенно повышает производительность
  • Super Formula Bar (легко редактировать несколько строк текста и формул); Чтение макета (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон ...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объединить дублирующиеся строки и сумму / среднее ... Предотвратить повторяющиеся клетки; Сравнить диапазоны ...
  • Выберите Дублировать или Уникальные строки; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих книгах; Случайный выбор ...
  • Точное копирование нескольких ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставьте маркеры, флажки и многое другое ...
  • Любить и быстро вставлять формулы, диапазоны, графики и рисунки; Шифровать ячейки с помощью пароля; Создать список рассылки и отправлять электронные письма ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев ...
  • Суперфильтр (сохранение и применение схем фильтрации к другим листам); Расширенный Сортировать по месяцу / неделе / ​​дню, частоте и многому другому; Специальный фильтр жирным шрифтом, курсив ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разбить данные на несколько листов; Пакетное конвертирование xls, xlsx и PDF ...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.

Удаление скрытых строк в активном листе с кодом 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 для удаления скрытых строк. Смотрите скриншот:

doc удалить остальные 1

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

doc удалить остальные 1

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


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

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

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

doc удалить остальные 1

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

doc удалить остальные 1

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

doc удалить остальные 1

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


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

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

Kutools for Excel : с более чем 300 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни.

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

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

doc удалить остальные 1

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

doc удалить остальные 1


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

Kutools for Excel включает в себя более удобные инструменты Excel 300. Бесплатно, без ограничений, в 60-дни. Скачайте бесплатную пробную версию прямо сейчас!


  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905
  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Bill · 1 months ago
    VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
  • To post as a guest, your comment is unpublished.
    Maximillian Eckemoff · 1 years ago
    Feedback re: the macro for hidden row deletions - this takes too long to run on 900k rows to be useful. 2+ hours on an OC'd Threadripper 1950X and still running (had to end task). Any way to optimize it to use multiple cores or is this a VBA limitation?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi,
      The code has been optimized. Please have a try. Thank you for your comment.

      Sub RemoveHiddenRows()
      Dim xFlag As Boolean
      Dim xStr, xTemp As String
      Dim xDiv, xMod As Long
      Dim I, xCount, xRows As Long
      Dim xRg, xCell, xDRg As Range
      Dim xArr() As String
      On Error Resume Next
      Application.ScreenUpdating = False
      Application.EnableEvents = False
      Set xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
      If xRg Is Nothing Then Exit Sub
      xRows = xRg.Rows.Count
      Set xRg = xRg(1)
      xFlag = True
      xTemp = ""
      xCount = 0
      For I = 1 To xRows
      Set xCell = xRg.Offset(I - 1, 0)
      Do While xFlag
      If xCell.EntireRow.Hidden Then
      xStr = xCell.Address
      xFlag = False
      Else
      GoTo Ctn
      End If
      Loop
      If xCell.EntireRow.Hidden Then
      xTemp = xStr & "," & xCell.Address
      End If
      If Len(xTemp) > 171 Then
      xCount = xCount + 1
      ReDim Preserve xArr(1 To xCount)
      xArr(xCount) = xStr
      xStr = xCell.Address
      Else
      xStr = xTemp
      End If
      Ctn:
      Next
      xCount = xCount + 1
      ReDim Preserve xArr(1 To xCount)
      xArr(xCount) = xStr
      For I = xCount To 1 Step -1
      If I = 1 Then
      xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
      Else
      xStr = xArr(I)
      End If
      If xDRg Is Nothing Then
      Set xDRg = Range(xStr)
      Else
      Set xDRg = Union(xDRg, Range(xStr))
      End If
      If (Len(xDRg.Address) >= 244) Or (xCount = 1) Then
      xDRg.EntireRow.Delete
      Set xDRg = Nothing
      End If
      Next
      Application.EnableEvents = True
      Application.ScreenUpdating = True
      End Sub