Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як відфільтрувати список і видалити решту прихованих або видимих ​​рядків у 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% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
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.
    Sriram S · 1 years ago
    Hi this VBA code is awesome useful.
  • To post as a guest, your comment is unpublished.
    worded · 2 years ago
    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?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      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.
  • To post as a guest, your comment is unpublished.
    Bill · 2 years ago
    VBA code to Delete hidden rows worked perfectly with no fiddling. THANK YOU!!
  • To post as a guest, your comment is unpublished.
    max@eckemoffllc.com · 3 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 · 3 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
      • To post as a guest, your comment is unpublished.
        max@eckemoffllc.com · 3 years ago
        Awesome, thank you! Will review at my next opportunity / need for this and reply back.