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

Як відфільтрувати список і видалити решту прихованих або видимих ​​рядків у Excel?

Для відфільтрованого списку може знадобитися видалити приховані або видимі рядки, щоб зберегти лише корисні дані. У цій статті ми покажемо вам способи видалення решти прихованих або видимих ​​рядків відфільтрованого списку в Excel.

Видаліть приховані рядки в активному аркуші з кодом VBA
Видаліть видимі рядки відфільтрованого списку з виділенням усіх видимих ​​комірок
Легко видаляйте приховані або видимі рядки відфільтрованого списку за допомогою Kutools для Excel


Видаліть приховані рядки в активному аркуші з кодом VBA

У цьому розділі буде показано код VBA для видалення прихованих рядків в активному аркуші. Будь ласка, виконайте наступне.

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

2. У вікні Microsoft Visual Basic for Applications натисніть Insert > Модулі. А потім скопіюйте та вставте наведений нижче код 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 для Excel

Наведені два методи можуть бути не бажаними рішеннями для багатьох користувачів Excel, тут ми представляємо вам зручний інструмент. З Видалити приховані (видимі) рядки та стовпці корисність Kutools для Excel, Ви можете легко видалити приховані рядки у вибраному діапазоні / аркушах, активному аркуші або всіх робочих аркушах у Excel.

Перед поданням заявки Kutools для Excel, будь ласка завантажте та встановіть його спочатку.

1. Якщо потрібно лише видалити приховані або видимі рядки відфільтрованого списку, виберіть відфільтрований діапазон вручну, а потім натисніть Кутулс > видаляти > Видалити приховані (видимі) рядки та стовпці. Дивіться знімок екрана:

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

3. Потім з’явиться діалогове вікно, щоб повідомити, скільки рядків було видалено, клацніть на OK кнопки.

  Якщо ви хочете отримати безкоштовну пробну версію (30 днів) цієї утиліти, натисніть, щоб завантажити, а потім перейдіть до застосування операції, як описано вище.


Видаліть приховані або видимі рядки відфільтрованого списку за допомогою Kutools для Excel


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (7)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Відгук щодо: макрос для видалення прихованих рядків – це займає занадто багато часу для виконання на 900 тис. рядків, щоб бути корисним. 2+ години на OC'd Threadripper 1950X і все ще працює (довелося завершити завдання). Будь-який спосіб оптимізувати його для використання кількох ядер чи це обмеження VBA?
Цей коментар був мінімізований модератором на сайті
привіт,
Код оптимізовано. Будь ласка, спробуйте. Дякуємо за коментар.

Sub RemoveHiddenRows()
Dim xFlag як Boolean
Dim xStr, xTemp як рядок
Dim xDiv, xMod As Long
Dim I, xCount, xRows As Long
Dim xRg, xCell, xDRg як діапазон
Dim xArr() як рядок
On Error Resume Next
Application.ScreenUpdating = Невірний
Application.EnableEvents = False
Встановіть xRg = Intersect(ActiveSheet.Range("A:A").EntireRow, ActiveSheet.UsedRange)
Якщо xRg — нічого, вийдіть із Sub
xRows = xRg.Rows.Count
Встановити xRg = xRg(1)
xFlag = Правда
xTemp = ""
xCount = 0
Для I = 1 до x рядків
Встановити xCell = xRg.Offset(I - 1, 0)
Робіть, поки xFlag
Якщо xCell.EntireRow.Hidden Тоді
xStr = xCell.Address
xFlag = Неправда
Ще
Перейти до Ctn
End If
Петля
Якщо xCell.EntireRow.Hidden Тоді
xTemp = xStr & "," & xCell.Address
End If
Якщо Len(xTemp) > 171 Тоді
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
xStr = xCell.Address
Ще
xStr = xTemp
End If
Ctn:
Далі
xCount = xCount + 1
ReDim Preserve xArr(1 To xCount)
xArr(xCount) = xStr
Для I = xCount To 1 Step -1
Якщо I = 1 Тоді
xStr = Mid(xArr(I), InStr(xArr(I), ",") + 1, Len(xArr(I)) - InStr(xArr(I), ","))
Ще
xStr = xArr(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 надзвичайно корисний.
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця