Прескочи на основното съдържание

Как да филтрирате списък и да изтриете останалите скрити или видими редове в Excel?

Автор: Силувия Последна промяна: 2020-04-28

За филтриран списък може да се наложи да изтриете скритите или видимите редове, за да запазите само полезните данни. В тази статия ще ви покажем методи за изтриване на останалите скрити или видими редове от филтриран списък в Excel.

Изтрийте скритите редове в активния работен лист с VBA код
Изтрийте видимите редове от филтрирания списък, като изберете всички видими клетки
Лесно изтривайте скрити или видими редове от филтриран списък с Kutools за 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. В Отидете на Special диалоговия прозорец, проверете Само видими клетки опция и след това щракнете върху OK бутон.

документ изтриване останало 1

3. Сега всички видими редове са избрани, щракнете с десния бутон върху селекцията и след това щракнете Изтриване на редове.

документ изтриване останало 1

Досега всички видими редове се изтриват от филтрирания списък.


Лесно изтривайте скрити или видими редове от филтриран списък с Kutools за Excel

Горните два метода може да не са желаните решения за много потребители на Excel, тук ви представяме един удобен инструмент. С Изтриване на скрити (видими) редове и колони полезност на Kutools за Excel, можете лесно да изтриете скрити редове в избран диапазон/листове, активен лист или всички работни листове в Excel.

Преди да кандидатствате Kutools за Excel, Моля те първо го изтеглете и инсталирайте.

1. Ако искате да изтриете само скрити или видими редове от филтриран списък, моля, изберете ръчно филтрирания диапазон и след това щракнете върху Kutools > Изтрий > Изтриване на скрити (видими) редове и колони. Вижте екранна снимка:

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

3. След това се появява диалогов прозорец, за да ви каже колко реда са били изтрити, моля, щракнете върху OK бутон.

  Ако искате да имате безплатен пробен период (30 дни) на тази помощна програма, моля, щракнете, за да го изтеглитеи след това преминете към прилагане на операцията съгласно горните стъпки.


Изтрийте скрити или видими редове от филтриран списък с Kutools за Excel

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за 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