Как удалить все скрытые элементы в Excel

Довольно часто люди скрывают какие-либо данные в табличках.

Это хороший вариант оставить видимыми только те данные, которые важны (например, в отчете), а остальные (например, вспомогательный столбик для расчетов) просто скрыть.

Но если вам эти данные больше не нужны — можно их удалить. В случае, если их очень много, это займет довольно много времени вручную.

В данной статье мы рассмотрим быстрые способы удаления скрытых столбиков и строк.

Итак, начнём!

Удаляем скрытые столбики и строки с помощью встроенных функций Excel

Мы можем использовать встроенную функцию Excel чтобы сделать это.

Узнайте Excel как свои пять пальцев на курсе по таблицам от Skillbox

Но не забывайте, что с помощью этой функции мы удалим их сразу со всех листов. А не с какого-то отдельного.

Пошаговая инструкция:

  • Щелкните «Главная»;
Как удалить все скрытые элементы в Excel
  • Далее — «Сведения»;
Как удалить все скрытые элементы в Excel
  • Далее — «Проверка книги»;
Как удалить все скрытые элементы в Excel
  • Жмем «Проверить документ»;
Как удалить все скрытые элементы в Excel
  • И просто нажимаем «Проверить»;
Как удалить все скрытые элементы в Excel
  • Далее найдите Далее найдите «Скрытые строки и столбцы»;
Как удалить все скрытые элементы в Excel
  • И просто удалите их.
Как удалить все скрытые элементы в Excel

Готово! Таким образом, все скрытые элементы будут удалены. Вот результат проверки после удаления:

Как удалить все скрытые элементы в Excel

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

Как удалить все скрытые элементы в Excel

Кроме того, что мы рассматриваем в этой статье, с помощью этой проверки можно определить кучу других полезных вещей.

Обязательно сделайте резервную копию файла перед тем, как будете использовать этот способ. Так как изменения, которые вы сделаете — невозможно откатить.

Однако, этот способ не подойдет вам, если нужно удалить скрытые элементы только с одного листа. А другие не трогать.

В таком случае мы можем создать свою функцию с помощью Visual Basic.

С помощью Visual Basic

В этом разделе статьи мы создадим несколько функций (для разных целей) с помощью Visual Basic.

Начнём!

Удаляем скрытые элементы из выделенного диапазона ячеек

Мы можем создать функцию которая удалит скрытые элементы со всего листа, но я считаю что это глупая затея.

Самый приемлемый вариант — сделать так, чтобы функция удаляла скрытые элементы из выделенного диапазона. А там уже можно выделить и весь лист (CTRL + A), если это необходимо.

Код для удаления скрытых строк Visual Basic:

Sub DeleteHiddenRows() 
Dim sht As Worksheet 
Dim LastRow 
Set sht = ActiveSheet 
LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row   

For i = LastRow To 1 Step -1 
If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete 
Next   

End Sub

Lastrow — этой переменной присваивается номер последней строки в выделенном диапазоне.

Далее он проверяет скрыта или нет эта строка и так далее.

Рекомендуем курс Excel по анализу данных от Skypro — очень глубокое и яркое погружение в Эксель.

Если скрыта — удаляется.

Код для удаления скрытых столбиков Visual Basic:

Sub DeleteHiddenColumns() 
Dim sht As Worksheet 
Dim LastCol as Integer 
Set sht = ActiveSheet 
LastCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column   

For i = LastCol To 1 Step -1 
If Columns(i).Hidden = True Then Columns(i).EntireColumn.Delete 
Next   

End Sub

Работает точно так же, только для столбиков.

А этот код работает сразу для столбиков и строк:

Sub DeleteHiddenRowsColumns() 
Dim sht As Worksheet 
Dim LastRow as Integer 
Dim LastCol as Integer 
Set sht = ActiveSheet 
LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row 
LastCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column   

For i = LastRow To 1 Step -1 
If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete 
Next   

For i = LastCol To 1 Step -1 
If Columns(i).Hidden = True Then Columns(i).EntireColumn.Delete 
Next   
End Sub

Это, по сути, объединенные коды, которые мы уже рассмотрели.

Тут работает 2 цикла — сначала проверяются и удаляются скрытые строки, а потом столбики.

Код нужно вставить в Visual Basic -> правой кнопкой на любой лист -> «Insert» -> «Module».

Удаляем скрытые элементы из определенного диапазона ячеек

Бывает и такое, что нужно часто удалять скрытые элементы из конкретного диапазона ячеек.

В таком случае, мы можем указать, в каком диапазоне удалять скрытые элементы и сделать это прямо в функции!

Пример такого кода:

Sub DeleteHiddenRowsColumns() 
Dim sht As Worksheet 
Dim Rng As Range 
Dim LastRow As Integer 
Dim RowCount As Integer 
Set sht = ActiveSheet 
Set Rng = Range("A2:B300") 
RowCount = Rng.Rows.Count 
LastRow = Rng.Rows(Rng.Rows.Count).Row 
ColCount = Rng.Columns.Count 
LastCol = Rng.Columns(Rng.Columns.Count).Column   

For i = LastRow To LastRow - RowCount Step -1 
If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete 
Next   

For j = LastCol To LastCol - ColCount Step -1 
If Columns(j).Hidden = True Then Columns(j).EntireColumn.Delete 
Next     

End Sub

Эта функция удалит все скрытые элементы из A2:B300.

Сам код такой же, как и те, что мы рассмотрели ранее, но в нем указан конкретный диапазон.

Вот и все! Рекомендую использовать встроенную функцию проверки документа, если вам нужно удалить скрытые элементы со всех листов. А в других случаях — используйте любой из кодов для Visual Basic.

Надеюсь, эта статья оказалась полезной для вас!

Узнайте Excel как свои пять пальцев на курсе по таблицам от Skillbox

Оцените статью, пожалуйста
Добавить комментарий