Перейти до основного матеріалу

Як відфільтрувати список і видалити решту прихованих або видимих ​​рядків у 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 AI Aide: Революціонізуйте аналіз даних на основі: Інтелектуальне виконання   |  Згенерувати код  |  Створення спеціальних формул  |  Аналізуйте дані та створюйте діаграми  |  Викликати функції Kutools...
Популярні функції: Знайдіть, виділіть або визначте дублікати   |  Видалити порожні рядки   |  Об’єднайте стовпці або клітинки без втрати даних   |   Раунд без Формули ...
Супер пошук: VLookup за кількома критеріями    Багатозначний VLookup  |   VLookup на кількох аркушах   |   Нечіткий пошук ....
Розширений розкривний список: Швидке створення випадаючого списку   |  Залежний спадний список   |  Виберіть розкривний список, що вибирається ....
Менеджер колонок: Додайте конкретну кількість стовпців  |  Перемістити стовпці  |  Перемкнути статус видимості прихованих стовпців  |  Порівняйте діапазони та стовпці ...
Особливості: Фокус сітки   |  Перегляд дизайну   |   Велика панель формул    Диспетчер робочих книг і аркушів   |  Бібліотека ресурсів (автотекст)   |  Вибір дати   |  Об’єднайте робочі аркуші   |  Шифрування/розшифрування клітинок    Надсилайте листи за списком   |  Супер фільтр   |   Спеціальний фільтр (фільтр жирний/курсив/закреслений...) ...
Топ-15 наборів інструментів12 текст Tools (додати текст, Видалити символи, ...)   |   50 + Графік типи (діаграма Ганта, ...)   |   40+ Практичний Формули (Розрахуйте вік на основі дня народження, ...)   |   19 вставка Tools (Вставте QR-код, Вставити зображення зі шляху, ...)   |   12 Перетворення Tools (Числа до слів, Валютна конверсія, ...)   |   7 Злиття та розділення Tools (Розширені комбіновані ряди, Розділені клітини, ...)   |   ... і більше

Покращуйте свої навички Excel за допомогою Kutools для Excel і відчуйте ефективність, як ніколи раніше. Kutools для Excel пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу.  Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...

Опис


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

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
Comments (7)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi this VBA code is awesome useful.
This comment was minimized by the moderator on the site
Thanks for the info. This has been instructive. Please is there a way to filter and delete for specific numbers in rows of up to 1 million? Can the code above be modified to do so?
This comment was minimized by the moderator on the site
Hi,
Sorry did not test the code in such huge row data. Maybe you can make a copy of your data and test if the code can work.
This comment was minimized by the moderator on the site
VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
This comment was minimized by the moderator on the site
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?
This comment was minimized by the moderator on the site
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
This comment was minimized by the moderator on the site
Awesome, thank you! Will review at my next opportunity / need for this and reply back.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations