Макрос на удаление пустых ячеек в excel

Удаление пустых ячеек из диапазона

Постановка задачи

Имеем диапазон ячеек с данными, в котором есть пустые ячейки:

delete_blanks1.gif

Задача — удалить пустые ячейки, оставив только ячейки с информацией.

Способ 1. Грубо и быстро

  1. Выделяем исходный диапазон
  2. Жмем клавишу F5, далее кнопка Выделить (Special). В открывшмся окне выбираем Пустые ячейки (Blanks) и жмем ОК.

    delete_blanks3.png

    Выделяются все пустые ячейки в диапазоне.

  3. Даем в меню команду на удаление выделенных ячеек: правой кнопкой мыши Удалить ячейки (Delete Cells) со сдвигом вверх.

Способ 2. Формула массива

Для упрощения дадим нашим рабочим диапазонам имена, используя Диспетчер Имен (Name Manager) на вкладке Формулы (Formulas) или — в Excel 2003 и старше — меню Вставка — Имя — Присвоить (Insert — Name — Define)

delete_blanks2.gif

Диапазону  B3:B10 даем имя ЕстьПустые, диапазону D3:D10 — НетПустых. Диапазоны должны быть строго одного размера, а расположены могут быть где угодно относительно друг друга.

Теперь выделим первую ячейку второго диапазона (D3) и введем в нее такую страшноватую формулу:

=ЕСЛИ(СТРОКА()-СТРОКА(НетПустых)+1>ЧСТРОК(ЕстьПустые)-СЧИТАТЬПУСТОТЫ(ЕстьПустые);»»;ДВССЫЛ(АДРЕС(НАИМЕНЬШИЙ((ЕСЛИ(ЕстьПустые<>»»;СТРОКА(ЕстьПустые);СТРОКА()+ЧСТРОК(ЕстьПустые)));СТРОКА()-СТРОКА(НетПустых)+1);СТОЛБЕЦ(ЕстьПустые);4)))

В английской версии это будет:

=IF(ROW()-ROW(НетПустых)+1>ROWS(ЕстьПустые)-COUNTBLANK(ЕстьПустые),»»,INDIRECT(ADDRESS(SMALL((IF(ЕстьПустые<>»»,ROW(ЕстьПустые),ROW()+ROWS(ЕстьПустые))),ROW()-ROW(НетПустых)+1),COLUMN(ЕстьПустые),4)))

Причем ввести ее надо как формулу массива, т.е. после вставки нажать не Enter (как обычно), а Ctrl+Shift+Enter. Теперь формулу можно скопировать вниз, используя автозаполнение (потянуть за черный крестик в правом нижнем углу ячейки) — и мы получим исходный диапазон, но без пустых ячеек:

delete_blanks4.gif

Способ 3. Пользовательская функция на VBA

Если есть подозрение, что вам часто придется повторять процедуру удаления пустых ячеек из диапазонов, то лучше один раз добавить в стандартный набор свою функцию для удаления пустых ячеек, и пользоваться ей во всех последующих случаях.

Для этого откройте редактор Visual Basic (ALT+F11), вставьте новый пустой модуль (меню Insert — Module) и скопируйте туда текст этой функции:

Function NoBlanks(DataRange As Range) As Variant()

    Dim N As Long
    Dim N2 As Long
    Dim Rng As Range
    Dim MaxCells As Long
    Dim Result() As Variant
    Dim R As Long
    Dim C As Long
    
    MaxCells = Application.WorksheetFunction.Max( _
        Application.Caller.Cells.Count, DataRange.Cells.Count)
    ReDim Result(1 To MaxCells, 1 To 1)
    
    For Each Rng In DataRange.Cells
        If Rng.Value <> vbNullString Then
            N = N + 1
            Result(N, 1) = Rng.Value
        End If
    Next Rng
    For N2 = N + 1 To MaxCells
        Result(N2, 1) = vbNullString
    Next N2
    
    If Application.Caller.Rows.Count = 1 Then
        NoBlanks = Application.Transpose(Result)
    Else
        NoBlanks = Result
    End If

End Function

Не забудьте сохранить файл и вернитесь из редактора Visual Basic в Excel. Чтобы использовать эту функцию в нашем примере:

  1. Выделите достаточный диапазон пустых ячеек, например F3:F10.
  2. Идем в меню Вставка — Функция (Insert — Function) или жмем на кнопку Вставить функцию (Insert Function) на вкладке Формулы (Formulas) в новых версиях Excel. В категории Определенные пользователем (User Defined) выберите нашу функцию NoBlanks.
  3. В качестве аргумента функции укажите исходный диапазон с пустотами (B3:B10) и нажмите Ctrl+Shift+Enter, чтобы ввести функцию как формулу массива.

Ссылки по теме:

  • Удаление сразу всех пустых строк в таблице простым макросом
  • Удаление сразу всех пустых строк на листе с помощью надстройки PLEX
  • Быстрое заполнение всех пустых ячеек
  • Что такое макросы, куда вставлять код макросов на VBA

Исходные коды макросов для выделения, удаления, скрытия и добавления пустых строк в таблицу Excel по условию пользователя.

Как выделить все пустые строки макросом

Есть таблица годового бюджета, разделенная на отдельные группы статей расходов и кварталы. Каждая группа статей расходов разделена между собой пустыми строками:

Таблица бюджета.

Нам необходимо удалить все пустые строки в таблице. Для этого сначала необходимо их выделить. Если выделять вручную, то потребуется много времени и сил. Кроме того, нужно еще быть уверенным что строка действительно является пустой, чтобы вместе с ней не удалить важную информацию из бюджета или формулу. Для автоматического решения данной задачи лучше написать свой макрос, который сам проверит и выделит все пустые строки в таблице годового бюджета.

Откройте редактор Visual Basic (ALT+F11):

редактор Visual Basic.

И воздайте в нем новый модуль для текущей книги «Insert»-«Module», а потом запишите в него следующий VBA-код макроса:

Sub SelectLine()
  Dim i As Long
  Dim diapaz1 As Range
  Dim diapaz2 As Range
Set diapaz1 = Application.Range(ActiveSheet.Range("A1"), _
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
For i = 1 To diapaz1.Rows.Count
If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) = 0 Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1.Rows(i).EntireRow
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)
End If
End If
Next
If diapaz2 Is Nothing Then
MsgBox "Ненайдено ниодной пустой строки!"
Else
diapaz2.Select
End If
End Sub

VBA-код макроса.

Теперь если нам нужно автоматически выделить все пустые строки в таблице бюджета перед тем как их удалить, выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«SelectLine»-«Выполнить». В результате выделяться все пустые ячейки только для пустых строк внутри исходной таблицы.

Пример работы первого VBA-кода:

Выделить пустые строки.

Пустые строки, которые находиться под последними заполненными ячейками не будут выделены. Теперь для удаления выделенных строк пользователю осталось только выбрать инструмент: «ГЛАВНАЯ»-«Ячейки»-«Удалить»-«Удалить строки с листа». Или нажать комбинацию горячих клавиш CTRL+=. А после в появившемся окне «Удаление ячеек» выбрать опцию «строку» и нажать ОК.

Вначале кода присваиваем для переменной diapaz1 диапазон ячеек в границах между A1 и последней используемой ячейкой на рабочем листе Excel.

Примечание. Последняя используемая ячейка на листе — это любая ячейка для, которой были выполнены любые изменения: ввод значений, изменение формата границ или цвета фона и т.п.

Далее в цикле проверяются все строки в этом диапазоне, каждая по отдельности, на количество непустых ячеек. В том случаи если метод CountA возвращает значение 0, то адреса этих ячеек дополняют несмежный диапазон в переменной diapaz2 еще на одну пустую строку.

В конце макроса выделяются все пустые строки, находящиеся внутри диапазона определенным переменной diapaz2. Если же таблица не сдержит ни одной пустой строки, тогда выводиться соответственное сообщение.



Макрос для удаления пустых строк

Как удалить строку макросом? Если нужно сделать так чтобы макрос автоматически не только выделял, но и сам удалял пустые целые и смежные диапазоны ячеек без использования других инструментов, тогда в конце кода для переменной diapaz2.Select следует изменить метод на [Delete]:

diapaz2.[Delete]

Удалить:

Sub DelLine()
  Dim i As Long
  Dim diapaz1 As Range
  Dim diapaz2 As Range
Set diapaz1 = Application.Range(ActiveSheet.Range("A1"), _
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
For i = 1 To diapaz1.Rows.Count
If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) = 0 Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1.Rows(i).EntireRow
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)
End If
End If
Next
If diapaz2 Is Nothing Then
MsgBox "Ненайдено ниодной пустой строки!"
Else
diapaz2.[Delete]
End If
End Sub

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

Пример второго VBA-кода удалить.

Макрос для скрытия пустых строк

Как скрыть пустые строки макросом? Но если вам нужно не удалить, а только скрыть (например, при подготовке документа на печать), тогда эту строку кода следует модифицировать несколько иначе:

diapaz2.EntireRow.Hidden = True

Скрыть:

Sub HidLine()
  Dim i As Long
  Dim diapaz1 As Range
  Dim diapaz2 As Range
Set diapaz1 = Application.Range(ActiveSheet.Range("A1"), _
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
For i = 1 To diapaz1.Rows.Count
If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) = 0 Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1.Rows(i).EntireRow
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)
End If
End If
Next
If diapaz2 Is Nothing Then
MsgBox "Ненайдено ниодной пустой строки!"
Else
diapaz2.EntireRow.Hidden = True
End If
End Sub

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

Пример третьего VBA-кода скрыть.

Добавление строк макросом

Как вставить строки макросом? Если мы изменим код в этом же месте как показано ниже, то получиться инструмент для добавления и вставки строк после пустых:

diapaz2.[Insert]

Добавить:

Sub AddLine()
  Dim i As Long
  Dim diapaz1 As Range
  Dim diapaz2 As Range
Set diapaz1 = Application.Range(ActiveSheet.Range("A1"), _
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
For i = 1 To diapaz1.Rows.Count
If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) = 0 Then
If diapaz2 Is Nothing Then
Set diapaz2 = diapaz1.Rows(i).EntireRow
Else
Set diapaz2 = Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)
End If
End If
Next
If diapaz2 Is Nothing Then
MsgBox "Ненайдено ниодной пустой строки!"
Else
diapaz2.[Insert]
End If
End Sub

Пример четвертого VBA-кода:

Пример четвертого VBA-кода добавить.

Если же вы хотите, чтобы макрос работал исключительно только для пустых строк предварительно выделенного определенного диапазона листа перед запуском макроса, то в начале макроса следует изменить строку создания экземпляра объекта для переменной diapaz1, на:

Set diapaz1 = Selection

Читайте также: Как выделить столбцы в Excel макросом.

Внимание! Следует помнить о том, что если таким образом создавать экземпляр объекта для переменной diapaz1, то тогда нельзя перед запуском макроса выделять все ячейки листа или все ячейки любого столбца. Иначе это затормозит программу Excel, так как один лист содержит аж 1 048 576 строк и тогда они все будут обрабатываться макросом, а пользователь будет ждать.

Удаление пустых строк с помощью кода VBA из всего задействованного диапазона рабочего листа Excel и из отдельного заданного диапазона.

Главный секрет удаления пустых строк кодом VBA Excel – это построчный просмотр диапазона или отдельного столбца снизу вверх, что исключает возможность при удалении найденных пустых строк получить бесконечный цикл и зависание программы.

Удаление пустых строк в используемом диапазоне

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

Определить границы используемого диапазона на рабочем листе из кода VBA Excel нам поможет последняя ячейка используемого диапазона: Cells.SpecialCells(xlLastCell).

Самый простой код удаления пустых строк

Сначала определяем номер строки последней ячейки задействованного на рабочем листе диапазона. Затем, с этой строки начинаем построчный просмотр используемого диапазона снизу вверх с поиском и удалением пустых строк.

Пример кода VBA Excel для активного листа:

Sub Primer1()

Dim n As Long, i As Long

‘Определяем номер строки последней ячейки

‘используемого диапазона на рабочем листе

n = Cells.SpecialCells(xlLastCell).Row

    ‘Ищем и удаляем пустые строки

    For i = n To 1 Step 1

        If Rows(i).Text = «» Then Rows(i).Delete

    Next

End Sub

То же самое, но с указанием книги и рабочего листа:

Sub Primer2()

Dim n As Long, i As Long

    With ThisWorkbook.Worksheets(«Лист1»)

        n = .Cells.SpecialCells(xlLastCell).Row

            For i = n To 1 Step 1

                If .Rows(i).Text = «» Then .Rows(i).Delete

            Next

    End With

End Sub

Программа определения времени выполнения макроса показала, что этот код отработал в диапазоне из 3000 строк за 17,5 секунд.

Улучшенный код удаления пустых строк

Предыдущий код VBA Excel анализирует на наличие текста каждую строку по всей длине в пределах рабочего листа. Эта процедура проверяет каждую строку по длине только в переделах используемого диапазона:

Sub Primer3()

Dim n As Long, i As Long, myRange As Range

‘Присваиваем объектной переменной ссылку на диапазон от первой ячейки

‘рабочего листа до последней ячейки используемого диапазона

Set myRange = Range(Range(«A1»), Cells.SpecialCells(xlLastCell))

    With myRange

        n = .Rows.Count

        For i = n To 1 Step 1

            If .Rows(i).Text = «» Then .Rows(i).Delete

        Next

    End With

End Sub

Программа определения времени выполнения макроса показала, что этот код отработал в диапазоне из 3000 строк за 13,3 секунды.

Удаление строк по пустым ячейкам

Иногда может появиться необходимость удалить не только полностью пустые строки, но и строки с пустыми ячейками в определенном столбце. Тогда следует действовать так:

Sub Primer4()

Dim n As Long, i As Long

n = Cells.SpecialCells(xlLastCell).Row

    For i = n To 1 Step 1

        If Cells(i, 1).Text = «» Then Rows(i).Delete

    Next

End Sub

или так:

Sub Primer5()

Dim n As Long, i As Long, myRange As Range

Set myRange = Range(Range(«A1»), Cells.SpecialCells(xlLastCell))

    With myRange

        n = .Rows.Count

        For i = n To 1 Step 1

            If .Cells(i, 1).Text = «» Then .Rows(i).Delete

        Next

    End With

End Sub

В этих примерах поиск пустой ячейки производится в первом столбце: Cells(i, 1).

Удаление пустых строк в заданном диапазоне

Процедуры VBA Excel для удаления пустых строк из заданного диапазона рассмотрим на примере объекта Selection, который можно заменить на любой диапазон, указанный явно.

Удаление полностью пустых строк в пределах заданного диапазона:

Sub Primer6()

Dim n As Long, i As Long

    With Selection

        n = .Rows.Count

        For i = n To 1 Step 1

            If .Rows(i).Text = «» Then .Rows(i).Delete

        Next

    End With

End Sub

Удаление строк по пустым ячейкам в одном из столбцов:

Sub Primer7()

Dim n As Long, i As Long

    With Selection

        n = .Rows.Count

        For i = n To 1 Step 1

            If .Cells(i, 1).Text = «» Then .Rows(i).Delete

        Next

    End With

End Sub


Skip to content

6 способов — как безопасно удалить лишние пустые строки в Excel

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

Пустые строки в таблице — это проблема, с которой мы все время от времени сталкиваемся, особенно при объединении данных из разных источников или импорте информации из каких-то отчетов. Они могут мешать вашим расчетам, портить внешний вид таблицы, а их удаление вручную может быть длительным и подверженным ошибкам процессом. 

В этой статье вы узнаете несколько простых и надежных методов удаления “белых пятен” на листах Excel.

  • Как НЕ НАДО удалять пустые строки в Excel
  • Как удалить пустые строки при помощи формул
  • Использование Power Query
  • Удаляем строки с определенными пустыми ячейками
  • Как убрать или скрыть лишние строки под данными
  • Как быстро удалить пустые строки при помощи VBA
  • Макрос 1. Удаление в выбранном диапазоне
  • Макрос 2. Удаляем все пустые строки
  • Макрос 3. Критерий удаления — пустая ячейка
  • Самый быстрый способ удалить пустые строки в Excel

Как НЕ НАДО удалять пустые строки в Excel

Есть несколько различных способов удаления пустых строк в Microsoft Excel. Но на удивление многие онлайн-ресурсы придерживаются в своих рекомендациях наиболее опасных из них.

Пожалуй, самый популярный совет – использовать инструмент «Найти и выделить» > «Перейти к специальному» > «Пробелы» .

Что плохого в этой технике? Она выбирает все пустоты в диапазоне данных. Но ведь в строке может быть, к примеру, только одна пустая ячейка, а в остальных будет записаны какие-то данные. И, следовательно, вы в итоге удалите множество строчек, которые содержат хотя бы одну пустую ячейку. Некоторые нужные данные, естественно, будут утеряны.

Специально не буду подробно описывать последовательность действий в этом методе, чтобы вы случайно его не повторили.

И ключевым в данном случае является вопрос: «Вы уверены, что все ячейки в вашей строке пустые? У вас точно нет таких, в которых по какой-то причине не заполнены одна или несколько ячеек, а остальные содержат данные?»

Просто запомните: «Не следует использовать метод поиска пустых ячеек, чтобы выделить и удалить пустые строки».

В качестве иллюстрации на изображении ниже слева показана исходная таблица, а справа — итоговая таблица. И в результирующей таблице все неполные строки пропали, даже 4,6 и 10, которые были частично заполнены:

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

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

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

С фильтрацией примерно та же история. Вы можете установить фильтр по пустым ячейкам в каком-то конкретном столбце. Далее все может произойти так же, как в истории с сортировкой. Какие-то из ячеек могут оказаться заполнены нужной информацией. Чтобы обезопасить себя от случайной её потери, такой фильтр по пустым ячейкам нужно установить в каждом столбце. Хорошо, если их в вашей таблице штук 5. А если 20? А 30? Вряд ли у вас есть желание устанавливать, а затем снимать даже 10 фильтров.

Поэтому эти методы – это также не наш выбор.

Итог: если вы не хотите испортить или потерять данные, никогда не удаляйте пустые строки, выбирая каким-то способом отдельные пустые ячейки в вашей таблице. Вместо этого используйте один из наиболее продуманных подходов, обсуждаемых ниже.

Формула для удаления пустых строк в Excel

Формулу мы будем использовать в дополнительном столбце, который лучше всего расположить справа от вашей таблицы. Поясним на примере.

У нас имеется таблица с заказами от различных покупателей. В ней имеются пропуски. Часть ячеек не заполнена. Давайте избавимся от пустых строк, но при этом сохраним все прочие данные.

Если вы хотите точно знать, что удаляете, то используйте следующую формулу:

=ЕСЛИ(СЧЁТЗ(A2:E2)=0;»Пусто»;»»)

Где A2 — первая, а E2 — последняя использованная ячейка первой строки данных.

Введите эту формулу в F2 или любой другой свободный столбец в строке 2 и перетащите маркер заполнения, чтобы скопировать формулу вниз.

В результате у вас будет записано «Пусто» в незаполненных строках и ничего, если есть хотя бы одна ячейка с данными:

Логика формулы очевидна: вы подсчитываете заполненные ячейки с помощью функции СЧЁТЗ и используете оператор ЕСЛИ для возврата «Пусто» для нулевого результата. Если же найдена хоть какая-то информация в нужном диапазоне, то не возвращаем ничего.

Фактически, вы можете обойтись без ЕСЛИ:

=СЧЁТЗ(A2:Е2)=0

В этом случае формула вернет ИСТИНА для пустых и ЛОЖЬ для заполненных строк.

Встречаются также аналогичные решения с использованием функции СЧИТАТЬПУСТОТЫ. В ней указываем диапазон ячеек и затем сравниваем с количеством столбцов.

=ЕСЛИ(СЧИТАТЬПУСТОТЫ(A2:E2)=ЧИСЛСТОЛБ(A2:E2);»Пусто»;»»)

Если достигнуто равенство, значит, число незаполненных клеток равно числу столбцов и данных в строке нет. Поэтому её можно пометить на удаление.

Как мы это удаление сделаем?

Разберем пошагово действия, как быстро удалить пустые строки:

  1. Выберите любую ячейку в заголовке и нажмите «Фильтр» на вкладке «Данные». Это добавит стрелки раскрывающегося списка фильтрации ко всем ячейкам заголовка.
  2. Щелкните стрелку в заголовке столбца формулы, снимите флажок (Выбрать все), выберите «Пусто» и нажмите ОК:

  1. Выделите всё отфильтрованное. Для этого щелкните самую верхнюю ячейку и нажмите Ctrl + Shift + End, чтобы расширить выделение до последней ячейки отфильтрованной области.

Или же щелкните по номеру первой незаполненной строки на вертикальной шкале координат. При этом вся она должна подсветиться. Затем наберите на клавиатуре комбинацию Ctrl + Shift +  

(стрелка вниз). При этом будет выделена вся область до конца таблицы. Поле этого кликните по выделению правой кнопкой мыши и выберите из контекстного меню пункт «Удалить». Все выделенные строки будут удалены.

Можно не вызывать контекстное меню, а просто набрать на клавиатуре сочетание клавиш Ctrl и - .

  1. Снимите фильтр, нажав Ctrl + Shift + L. Или же поставьте курсор в самую верхнюю позицию и вновь нажмите на иконку фильтра в меню «Данные».
  2. Удалите столбец с формулой проверки, поскольку он вам больше не нужен.

В результате мы имеем чистую таблицу без пробелов, но с сохранением всей информации. Частично заполненные строки остались в таблице, мы их не потеряли.

Совет. Вместо удаления, вы можете скопировать непустые строки в другое место. Для этого отфильтруйте всё, кроме «Пусто», выделите и нажмите Ctrl + C. Затем переключитесь на другой лист, выберите верхнюю левую ячейку целевого диапазона и нажмите Ctrl + V.

Как удалить пустые строки в Excel с помощью Power Query

В Excel 2016 и Excel 2019 есть еще один способ удалить незаполненные строки — с помощью инструмента Power Query. В Excel 2010 и 2013 его можно загрузить как надстройку.

Важное примечание! Этот метод работает со следующим предостережением: Power Query преобразует ваши данные в таблицу Excel и изменяет форматирование, такое как цвет заливки, границы и некоторые числовые форматы. Если для вас важно форматирование исходных данных, то лучше выбрать другой способ удаления.

Итак, давайте по порядку.

  1. Выберите диапазон, в котором вы хотите заняться удалением.
  2. Перейдите на   вкладку «Данные»  и нажмите Получить данные — Из других источников —  Из таблицы/диапазона . Это загрузит вашу таблицу в редактор Power Query.

  1. На вкладке Главная в редакторе Power Query щелкните  Удалить строки > Удалить пустые …. (как на рисунке).

  1. Нажмите кнопку «Закрыть и загрузить». Полученная таблица загрузится на новый лист и закроется редактор запросов.

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

Как удалить строки, если ячейка в определенном столбце пуста

В начале этого урока мы предостерегали вас от удаления пустых строк путем выбора пробелов. Однако этот метод пригодится, если вы хотите удалить строки на основе пробелов в определенном столбце.

В качестве примера удалим все строки, в которых ячейка в столбце A не содержит никакой информации:

  1. Выберите ключевой столбец, в нашем случае столбец A.
  2. На вкладке «Главная» нажмите Найти и выделить > Перейти… > Выделить. Или просто нажмите F5 и затем — Выделить… .

  1. В диалоговом окне выберите «Пробелы» и затем — «ОК». Это выделит все пустоты в столбце A.
  2. Щелкните правой кнопкой мыши любую выделенную ячейку и выберите «Удалить…» из контекстного меню.
  3. В диалоговом окне «Удалить» кликните «Строку» и нажмите «ОК».

Готово! Строки, которые не имеют данных в столбце A, больше не существуют.

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

Как удалить лишние строки под данными или скрыть их.

Иногда строки, которые выглядят совершенно пустыми, на самом деле могут содержать пробелы, перевод строки или непечатаемые символы. Чтобы проверить, действительно ли последняя ячейка с данными является последней использованной ячейкой на листе, нажмите Ctrl + End. Если это привело вас к визуально свободной от данных строке под вашими данными, то с точки зрения Excel, в ней на самом деле что-то записано. Чтобы удалить эти лишние строки под таблицей, сделайте следующее:

  1. Щелкните заголовок первой свободной строки под данными, чтобы выбрать ее целиком.
  2. Нажмите Ctrl + Shift + End. Это выберет все строчки ниже, которые содержат что-либо, включая пробелы и непечатаемые символы.
  3. Щелкните выделение правой кнопкой мыши, как это мы уже делали ранее, и выберите «Удалить…».

Однако, удаление — это достаточно радикальный шаг. Поэтому, думаю, стоит поискать более «мягкие» варианты. К примеру, нет ничего, что могло бы помешать вам незаполненные строки либо столбцы просто скрыть. Вот простая инструкция:

  1. Выберите строку под последней строкой с данными, щелкнув ее заголовок.
  2. Нажмите Ctrl + Shift + , чтобы расширить выделение до конца вниз.
  3. Нажмите Ctrl + 9 чтобы скрыть выбранные строки. Или щелкните выделение правой кнопкой мыши и выберите «Скрыть».

Чтобы вновь показать ранее скрытое, нажмите Ctrl + A , чтобы выделить весь лист, а затем нажмите Ctrl + Shift + 9, чтобы снова сделать все видимым.

Аналогичным образом вы можете скрыть неиспользуемые столбцы справа от ваших данных. 

Как быстро удалить пустые строки в Excel с помощью VBA

Excel VBA может исправить множество вещей, включая и несколько пустых строк. Лучшее в предлагаемом подходе — то, что он не требует никаких навыков программирования. Просто возьмите один из приведенных ниже кодов и запустите его в своем Excel.

Макрос 1. Удалить пустые строки в выбранном диапазоне.

Этот код VBA автоматически удаляет все пустые строки в выбранном диапазоне, не показывая пользователю никаких сообщений или диалоговых окон.

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

Public Sub DeleteBlankRows()
Dim SourceRange As Range
Dim EntireRow As Range
Set SourceRange = Application.Selection
If Not (SourceRange Is Nothing) Then
Application.ScreenUpdating = False
For I = SourceRange.Rows.Count To 1 Step -1
Set EntireRow = SourceRange.Cells(I, 1).EntireRow
If Application.WorksheetFunction.CountA(EntireRow) = 0 Then
EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End If
End Sub

Чтобы дать пользователю возможность выбрать целевой диапазон после запуска макроса, используйте этот код:

Public Sub RemoveBlankLines()
Dim SourceRange As Range
Dim EntireRow As Range
On Error Resume Next
Set SourceRange = Application.InputBox( _
"Выберите диапазон:", "Удалить пустые строки", _
Application.Selection.Address, Type:=8)
If Not (SourceRange Is Nothing) Then
Application.ScreenUpdating = False
For I = SourceRange.Rows.Count To 1 Step -1
Set EntireRow = SourceRange.Cells(I, 1).EntireRow
If Application.WorksheetFunction.CountA(EntireRow) = 0 Then
EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End If
End Sub

После запуска макрос показывает вам поле ввода, вы указываете целевой диапазон и нажимаете OK:

Через мгновение все лишние строки в выбранном диапазоне будут удалены, а оставшиеся сдвинутся вверх.

Макрос 2. Удалить все пустые строки в Excel

Чтобы массово удалить все пустые строки на активном листе, макрос находит последнюю строку используемого диапазона (т.е. содержащую последнюю ячейку с данными), а затем переходит вверх, удаляя строчки, в которых нет никакой информации:

Sub DeleteAllEmptyRows()
Dim LastRowIndex As Integer
Dim RowIndex As Integer
Dim UsedRng As Range
Set UsedRng = ActiveSheet.UsedRange
LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count
Application.ScreenUpdating = False
For RowIndex = LastRowIndex To 1 Step -1
If Application.CountA(Rows(RowIndex)) = 0 Then
Rows(RowIndex).Delete
End If
Next RowIndex
Application.ScreenUpdating = True
End Sub

Макрос 3. Удалить строку, если ячейка пуста.

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

Этот код проверяет столбец A на наличие пробелов. Чтобы удалить строки на основе другого столбца, замените «A» другой соответствующей буквой.

Sub DeleteRowIfCellBlank()
On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

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

Чтобы удалить незаполненные строки в Excel с помощью макроса, вам нужно вставить код VBA в свою книгу.

Как добавить макрос в свою книгу?

Чтобы вставить макрос в книгу, выполните следующие действия:

  1. Откройте лист, на котором вы хотите произвести удаление.
  2. Нажмите Alt + F11 , чтобы открыть редактор Visual Basic.
  3. На левой панели щелкните правой кнопкой мыши и выберите Insert  >  Module. Те же пункты можно выбрать вверху через главное меню.
  4. Вставьте код в появившееся окно кода.
  5. Нажмите F5 для запуска макроса (но вы можете сделать это и позже прямо из вашей книги).
  6. Нажмите кнопку «Сохранить». При этом вам будет предложено изменить формат вашей книги. Впрочем, запустить макрос на выполнение можно и без сохранения. Просто закройте окно Visual Basic и вернитесь к вашей таблице. Переходите сразу к пункту 3 ниже.

Чтобы выполнить макрос в рабочей книге Excel, сделайте следующее:

  1. Откройте свою собственную книгу и включите макросы, если будет предложено.
  2. Перейдите к нужной таблице.
  3. На листе нажмите Alt + F8, выберите макрос и нажмите «Выполнить».

Вы можете запустить один из следующих макросов:

DeleteBlankRows — удаляет строки без данных в текущем выбранном диапазоне.

RemoveBlankLines — удаляет чистые строки и перемещается вверх в диапазоне, выбранном вами после запуска макроса.

DeleteAllEmptyRows — удаляет все незаполненные строки на активном листе.

DeleteRowIfCellBlank — удаляет строку, если ячейка в определенном столбце пуста.

Имейте в виду, что отменить удаление при помощи меню или же комбинации клавиш Ctrl+Z в данном случае будет невозможно. Поэтому рекомендую перед использованием макросов позаботиться о сохранении резервной копии ваших данных.

Самый быстрый способ удалить пустые строки в Excel

Читая предыдущие примеры, разве не казалось, что мы используем кувалду, чтобы расколоть орех? Существует способ буквально в два клика мышки удалить пустые строки в Excel.

При помощи надстройки Ultimate Suite вы можете  удалить все пустые строки на листе:

  1. На вкладке Ablebits Tools в группе Преобразование (Transform)  нажмите Удалить пробелы (Delete Blanks) > Пустые строки (Empty Rows) :

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

Как показано на скриншоте ниже, мы удалили только абсолютно пустые строки , в которых нет ни одной ячейки с данными:

Сравните это с первым рисунком, и вы без труда заметите те 3 строки, которые были удалены одним нажатием  мышки. Согласитесь: это самый простой и быстрый способ удаления пустых строк среди всех прочих, рассмотренных в этой статье. Подробнее об инструменте удаления пустот в таблице вы можете прочитать здесь.

Чтобы узнать о других полезных функциях, включенных в надстройку Ultimate Suite, вы можете загрузить пробную версию.

Благодарю вас за чтение.

Формат времени в Excel Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…
Как сделать диаграмму Ганта Думаю, каждый пользователь Excel знает, что такое диаграмма и как ее создать. Однако один вид графиков остается достаточно сложным для многих — это диаграмма Ганта.  В этом кратком руководстве я постараюсь показать…
Как сделать автозаполнение в Excel В этой статье рассматривается функция автозаполнения Excel. Вы узнаете, как заполнять ряды чисел, дат и других данных, создавать и использовать настраиваемые списки в Excel. Эта статья также позволяет вам убедиться, что вы…
Быстрое удаление пустых столбцов в Excel В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…
Как быстро объединить несколько файлов Excel Мы рассмотрим три способа объединения файлов Excel в один: путем копирования листов, запуска макроса VBA и использования инструмента «Копировать рабочие листы» из надстройки Ultimate Suite. Намного проще обрабатывать данные в…

NewStudent07

0 / 0 / 0

Регистрация: 14.04.2013

Сообщений: 22

1

Нужно удалить пустые ячейки из выбронного столбца

14.04.2013, 18:06. Показов 10176. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Пожалуйста, помогите. Я только учись писать макросы. Вот написала один, а он некоректно работает.
Цель: нужно удалить пустые ячейки из выбронного столбца. Мой макрос не удаляет пустые ячейки, если они идут одна за другой. Плиз, помогите, розобраться почему, так??

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Макрос3()
'Не удаляет 2 и больше подряд пустых ячейки
Dim R As Range
Set R = Application.InputBox("Ввыделите верхнюю левую ячейку", _
"Ввыделяем диапазон", Selection.Address, , , , , 8)
    Range(R, R.Offset(100000, 0).End(xlUp)).Select
    For Each Cell In Selection
    If Cell.Value = 0 Then
    Cell.Delete
    End If
    Next Cell
End Sub



0



Эксперт NIX

2670 / 786 / 176

Регистрация: 14.01.2013

Сообщений: 3,676

14.04.2013, 18:15

2

После удаления ячейки, следующая становится текущей. Вот тут собака и зарыта.



0



0 / 0 / 0

Регистрация: 14.04.2013

Сообщений: 22

14.04.2013, 18:18

 [ТС]

3

и как это исправить??



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

14.04.2013, 18:25

4

Лучший ответ Сообщение было отмечено как решение

Решение

Либо пустить цикл от последней строки к первой, либо обойтись вообще без цикла: F5 — выделить — пустые ячейки — удалить. В VBA это выглядит так:

Visual Basic
1
2
3
4
5
6
7
8
9
Sub Макрос3()
'Не удаляет 2 и больше подряд пустых ячейки
Dim R As Range
Set R = Application.InputBox("Ввыделите верхнюю левую ячейку", _
"Ввыделяем диапазон", Selection.Address, , , , , 8)
 
Range(R, Cells(Rows.Count, R.Column)).SpecialCells(xlCellTypeBlanks).Delete xlShiftUp
 
End Sub



3



0 / 0 / 0

Регистрация: 14.04.2013

Сообщений: 22

14.04.2013, 18:45

 [ТС]

5

Огромное спасибо!! Правда я не совсем понимаю ваш код, так как только начала изучать VBA. Но главное, что он работает!!!

Цитата
Сообщение от Казанский
Посмотреть сообщение

Либо пустить цикл от последней строки к первой

А как можно пустить цикл For each Next от последней строки к первой???



0



Аксима

6076 / 1320 / 195

Регистрация: 12.12.2012

Сообщений: 1,023

14.04.2013, 19:28

6

Цитата
Сообщение от NewStudent07
Посмотреть сообщение

А как можно пустить цикл For each Next от последней строки к первой???

А вот так (только вместо цикла For each… next надо использовать цикл For… next):

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Макрос3()
    Dim i As Long, R As Range
    Set R = Application.InputBox("Выделите верхнюю левую ячейку диапазона", _
    "Выделяем диапазон", Selection.Address, , , , , 8)
    'Выделяем верхнюю левую ячейку выбранного пользователем диапазона,
    'так как нет гарантии, что он выберет только одну ячейку.
    Set R = R.Cells(1)
    'Если верхняя левая ячейка выбранного пользователем диапазона пуста,
    'то, скорее всего, пользователь ошибся. Прекращаем работу процедуры.
    If IsEmpty(R) Then
        Exit Sub
    Else 'Если же ошибки нет, то...
        'Выделяем диапазон от этой ячейки до последней заполненной ячейки
        'в столбце, содержащем эту ячейку.
        Set R = Range(R, Cells(Rows.Count, R.Column).End(xlUp))
        'Отключаем обновление экрана, чтобы удаление проходило быстрее.
        Application.ScreenUpdating = False
        'Идем от последней ячейки диапазона к первой и удаляем пустые ячейки.
        'R.Count - количество ячеек в диапазоне.
        'Step -1 - означает, что цикл идет в обратном порядке (от большего к
        'меньшему).
        For i = R.Count To 1 Step -1
            If IsEmpty(R.Cells(i)) Then R.Cells(i).Delete
        Next i
        'Включаем обновление экрана.
        Application.ScreenUpdating = True
        'Конец работы.
    End If
End Sub

Но вариант Казанского со SpecialCells мне нравится больше.

С уважением,

Aksima



1



0 / 0 / 0

Регистрация: 14.04.2013

Сообщений: 22

14.04.2013, 21:45

 [ТС]

7

Казанский и Aksima ОГРОМНОЕ ВАМ СПАСИБО!!!



0



Часто встречающейся операцией при работе с таблицами Excel является удаление пустых строк. Существуют как стандартные средства при помощи которых можно удалить пустые строки, так и нестандартные, с использованием программирования на Visual Basic for Application.

Стандартные способы удаления пустых строк

Удаление  вручную

Самый распространенный, но при этом самый примитивный способ, при котором необходимо навести курсор на номер пустой строки и кликнуть по нему левой кнопкой мыши. Вся строка выделится. Если нажать и удерживать клавишу Ctrl на клавиатуре, можно выделить несколько строк. После этого их можно удалить все разом, кликнув правой кнопкой мыши в выделенной области и выбрав команду «Удалить» в контекстном меню. Этот способ целесообразно использовать когда необходимо удалить несколько строк.

Удаление при помощи сортировки

Когда предстроит удалить достаточно много строк, искать их зрительно не очень удобно. В этом случае можно использовать сортировку по возрастанию либо убыванию для того чтобы пустые строки сгруппировались и после этого удалить их, выделив сразу весь диапазон. При этом очередность строк нарушается и для того, чтобы ее затем восстановить, необходимо предварительно в спомогательном столбце ввести нумерацию всех строк для того чтобы воостановить первоначальную очередность после удаления пустых строк.

Удаление при помощи выделения группы ячеек

Для того чтобы удалить пустые строки в Excel 2007 и 2010 можно использовать возможностью выделения группы ячеек. Для этого выделяем столбец, содержащий пустые ячейки, после чего находим на ленте Excel вкладку «Главная», в группе «Редактирование» выбираем кнопку «Найти и выделить» и выбираем пункт «Выделение группы ячеек». В появившемся диалоговом окне «Выделение группы ячеек» включаем опцию «Пустые ячейки» и нажимаем кнопку ОК. В предварительно выделенном столбце будут выделены все пустые ячейки. Остается кликнуть правой кнопкой мыши в любом месте выделенного поля и выбрать пункт «Удалить…» в контекстном меню, а в появившемся диалоговом окне «Удаление ячеек» выбрать пункт «Строка» и нажать ОК. При этом, строго говоря, удаляются не пустые строки, а строки, содержащие пустые ячейки в предварительно выделенном столбце.

Нестандартные методы удаления пустых строк

Программное удаление макросом VBA

Стандартные способы просты в использовании, но имеют свои минусы. Если ни один из стандартных способов не подходит, то для решения этой задачи можно использовать процедуру, написанную на языке VBA, которая удалит все пустые строки в используемом диапазоне листа.

Sub Udalenie_Pustyh_Strok()          
Dim r As Long, FirstRow As Long, LastRow As Long
FirstRow = ActiveSheet.UsedRange.Row
LastRow = ActiveSheet.UsedRange.Rows.Count - 1 + ActiveSheet.UsedRange.Row
    For r = LastRow To FirstRow Step -1
        If Application.CountA(Rows(r)) = 0 Then
            Rows(r).Delete
        End If
    Next r
End Sub

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

Автоматическое удаление с использованием надстройки

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

udalenie-i-skrytie-strok-po-usloviyu

Пользователь на свой выбор может удалять либо скрывать пустые строки. Может удалять либо скрывать строки содержащие либо не содержащие заданный текст, при этом на свой выбор учитывать либо не учитывать регистр. Возможен одновременный поиск сразу нескольких значений, введенных через точку с запятой (;). Пользователь также может на свое усмотрение расширять область действия макроса и ограничивать его, задавая номера первой и последней строки. Кроме того, надстройка освобождает пользователя от поиска нужного макроса, так как позволяет вызывать диалоговое окно прямо из панели инструментов Excel.

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

Vyborochnoe-udalenie-yacheek-po-usloviyu

Другие материалы по теме:

При составлении таблиц в Microsoft Excel и работе с формулами часто образуются пустые строки, которые проблематично убрать. В данной статье будут описаны самые распространенные методы их удаления.

Содержание

  1. Как НЕ НАДО удалять пустые строки в Excel
  2. Формула для удаления пустых строк в Excel
  3. Как удалить пустые строки в Excel с помощью Power Query
  4. Как удалить строки, если ячейка в определенном столбце пуста
  5. Как удалить лишние строки под данными или скрыть их
  6. Как быстро удалить пустые строки в Excel с помощью VBA
  7. Макрос 1. Удалить пустые строки в выбранном диапазоне
  8. Макрос 2. Удалить все пустые строки в Excel
  9. Макрос 3. Удалить строку, если ячейка пуста
  10. Как добавить макрос в свою книгу
  11. Как удалить пустые строки в Excel с помощью сортировки
  12. Как удалить пустые строки в Excel с помощью фильтрации
  13. Как убрать пустые строки в Excel с помощью выделения группы ячеек
  14. Как удалить пустые строки в Экселе с помощью вспомогательного столбца
  15. Заключение

Как НЕ НАДО удалять пустые строки в Excel

Удаление пустых строк не рекомендуется выполнять через раздел «Найти и выделить». Данная команда удаляет сразу всю строку, в которой есть пустоты. В таком случае ячейки с нужной информацией также пропадут. Инструмент «Найти и выделить» актуален, когда пустой получилась целая строчка в таблице, и ее необходимо удалить. В такой ситуации необходимо проделать следующие шаги:

  1. Выделить пустую строчку с помощью мыши.
  2. Перейти в раздел «Найти и выделить».
  3. Кликнуть по пункту «Перейти к специальному».
  4. Нажать ЛКМ по слову «Пробел». После этого пустота должна исчезнуть, и таблица преобразится.

В Эксель пустые строки могут удаляться посредством сортировки таблицы либо установления фильтра. Однако такой способ также может привести к полному удалению строки с заполненными ячейками. Причем пострадать могут и соседние строчки или столбцы.

Обратите внимание! В Excel нельзя удалять пустые строки, выбирая отдельные ячейки в таблице во избежание потери важной информации. Лучше воспользоваться другими методами, которые будут описаны далее.

Формула для удаления пустых строк в Excel

Для выполнения поставленной задачи можно воспользоваться специальной формулой, которая работает во всех версиях программы: =ЕСЛИ(СЧЕТЗ(A2:E2)=0;»Пусто»;»»). А2 и Е2 — это первая и последняя ячейки строки, в которой необходимо убрать пустоты. Аналогичным образом выражение применяется для любого столбца таблицы. Пользователю необходимо поставить курсор мыши в свободную ячейку и прописать данную формулу в строке сверху главного меню. Далее эту формулу потребуется растянуть для всех строк или столбцов таблицы, зажав ЛКМ крестик в правом нижнем углу первой ячейки. После таких манипуляций пустые строчки пропадут.

Как удалить пустые строки в Excel с помощью Power Query

Power Query — это специальный инструмент, который присутствует в версиях Excel, начиная с 2013 года.

Важно! Такой инструмент изменяет форматирование таблицы, заливку ячеек, их размер, ориентацию.

Чтобы удалить пустые ячейки в таблицы, необходимо выполнить несколько простых шагов по алгоритму:

  1. Выделить манипулятором строчку или столбик, в котором есть пустоты, требующие деинсталляции.
  2. В интерфейсе Excel сверху перейти в раздел «Данные».
  3. В графе открывшихся параметров кликнуть по кнопке «Получить данные».
  4. В меню контекстного типа нажать по строке «Из других источников» и далее выбрать вариант «Из таблицы/диапазона». Теперь откроется небольшое меню, где надо поставить галочку рядом с параметром «Таблица с заголовком» и щелкнуть по «ОК».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Загрузка таблицы в редактор Power Query
  1. Изучить интерфейс открывшегося редактора Power Query.
  2. Кликнуть ЛКМ по кнопке «Удалить строки» в верхней части раздела.
  3. В контекстном меню нажать по «Удалить пустые строки».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Удаление пустых строчек в редакторе Power Query. Пошаговый алгоритм
  1. Щелкнуть по кнопке «Закрыть и загрузить».
  2. Проверить результат. После проделывания вышеизложенных манипуляций окно редактора должно закрыться, и в таблице пропадут пустые ячейки.

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Финальный результат. Внешний вид таблицы после реализации способа

Дополнительная информация! После реализации рассмотренного способа формат отображения дат и чисел в таблице изменится.

Как удалить строки, если ячейка в определенном столбце пуста

После построения в некоторых столбцах таблицы могут появиться единичные пустые ячейки. От них легко избавиться методом пробелов, рассмотренного в начале статьи. В данной ситуации такой способ деинсталляции можно применить. Действовать нужно следующим образом:

  1. Нажать ПКМ по названию столбика, в котором есть пустоты.
  2. В контекстном меню нажать на «Выделить» и в следующем окне указать «Пустые ячейки». После закрытия окошка в выбранном столбце выделятся только пустоты, а ячейки с информацией останутся незатронутыми.
  3. Щелкнуть ПКМ по любой выделенной ячейки и нажать по строчке «Удалить». Откроется небольшое окно, в котором надо поставить тумблер напротив поля «Строки», а затем кликнуть «ОК».
  4. Проверить результат. Строчки, в которых присутствовали пустые ячейки, должны полностью деинсталлироваться из таблицы. Как и говорилось выше, минус метода в том, что ячейки с информацией также удалятся.

Как удалить лишние строки под данными или скрыть их

В процессе заполнения таблицы в Excel часто появляются пустые строки, в которых, на самом деле, прописана скрытая информация. Лишние ячейки возможно удалить следующим образом:

  1. Выделить пустую ячейку ЛКМ и зажать одновременно кнопки «Ctrl+Shift+End». Данная команда выделит оставшиеся ячейки, в которых на самом деле что-то написано.
  2. Кликнуть ПКМ по ячейке и в окошке контекстного типа выбрать вариант «Удалить».
  3. Проверить удалились ли лишние пустоты. Выбранные ячейки со скрытыми данными должны деинсталлироваться, как и в предыдущем методе.

Иногда пользователю не хочется удалять информацию из скрытых ячеек таблицы. В таком случае их можно скрыть. Скрытие строчек в Microsoft Office Excel осуществляется по следующей инструкции:

  1. Выделить ячейку под последней строкой с данными и зажать «Ctrl+Shift+End» для выделения оставшихся лишних пустот.
  2. После выделения всех пустот по любой из них надо кликнуть ПКМ и щелкнуть по варианту «Скрыть».
  3. Можно зажать кнопки «Ctrl+9» для скрытия лишних ячеек.
  4. Зажать «Ctrl+Shift+9», если пустоты нужно будет опять сделать видимыми.

Как быстро удалить пустые строки в Excel с помощью VBA

VBA — это специальный язык программирования, предназначенный для автоматизации процессов в редакторах Microsoft Office. С его помощью можно будет в кратчайшие сроки удалить пустые ячейки в Excel, скопировав нужный код программы. Для реализации такого способа деинсталляции не обязательно быть программистом. Далее будет рассмотрено несколько команд, реализуемых на VBA в Эксель.

Макрос 1. Удалить пустые строки в выбранном диапазоне

Если выделить нужные строки и ввести данный код, то можно удалить все пустоты указанного диапазона. При этом пользователь не увидит никаких предупреждений, сообщений, всплывающих диалоговых окон и т.д. Увидеть код для удаления пустот в диапазоне можно на следующем изображении:

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Код программы для деинсталляции пустых строчек в заданном диапазоне

Чтобы ввести макрос в Excel на языке программирования VBA и запустить его, необходимо:

  1. Переключиться в раздел «Разработчик», находящийся в списке параметров сверху главного меню.
  2. Кликнуть по кнопке «Запись макроса».
  3. Скопировать код с изображения выше и ввести его в соответствующее поле.
  4. Сохранить изменения нажатием на «ОК».
  5. Для запуска программы необходимо перейти во вкладку «Макросы», выбрать нужный код по названию созданных, выделить диапазон, в котором предстоит удалить пустоты, и кликнуть «ОК».

Важно! Созданный макрос сохранится в Excel, и его не нужно будет вводить каждый раз для выполнения конкретного действия.

Макрос 2. Удалить все пустые строки в Excel

С помощью написанного кода можно деинсталлировать сразу все пустоты, которые находятся на активном листе Эксель. Для этого используется следующий код:

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Макрос для удаления всех пустот на рабочем поле листа Excel

Макрос 3. Удалить строку, если ячейка пуста

Это метод пробелов, который был описан выше, реализуемый с помощью кода. Данный способ позволяет удалить всю строку, в которой присутствует одна или несколько пустых ячеек, а также избавиться от лишних строк. Представленный код будет выглядеть так:

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Макрос для деинсталляции лишних строк с пустотами со всего рабочего листа

Перед запуском любого кода в Excel рекомендуется создать копию своей работы во избежание утери важных сведений в случае допущения ошибки.

Как добавить макрос в свою книгу

Для записи кодов в Excel создается своя книга. Выше был рассмотрен альтернативный метод создания и запуска макросов. Есть еще один способ, который заключается в выполнении следующих шагов:

  1. Открыть лист, в котором нужно удалить какие-либо ячейки.
  2. Зажать клавиши «Alt+F11», чтобы запустить встроенный редактор «Visual Basic».
  3. В графе параметров слева открывшегося окошка нажать по слову «Insert», а затем перейти во вкладку «Module».
  4. Вставить нужный код программы в отобразившееся окошко.
  5. Щелкнуть по F5, чтобы проверить код на работоспособность.
  6. Кликнуть по кнопке «Сохранить» для добавления макроса в свою книгу.

Дополнительная информация! Чтобы активировать созданный макрос в следующий раз, необходимо зайти в книгу, выбрать соответствующую таблицу, зажать «Alt+F8» с клавиатуры, выбрать нужный код и щелкнуть по кнопке «Выполнить».

Как удалить пустые строки в Excel с помощью сортировки

Сортировка данных в таблице помогает удалить пустоты. Данная операция выполняется по алгоритму:

  1. Выделить нужный диапазон ячеек ЛКМ.
  2. Перейти в раздел «Данные» сверху главного меню программы и кликнуть по кнопке «Сортировка».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Сортировка таблицы значений в Excel
  1. В следующем меню выбрать столбец для отсортировки информации в нем и нажать «ОК».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Выбор столбца для отсортировки данных
  1. Убедиться, что таблица отсортирована. Пустые строки расположатся под таблицей. Их при необходимости можно будет удалить.

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Удаление пустых ячеек после отсортировки таблицы

Как удалить пустые строки в Excel с помощью фильтрации

Процесс выполнения поставленной задачи подразделяется на следующие этапы:

  1. Аналогичным образом выделить таблицу и переключиться в раздел «Данные» сверху окна программы.
  2. Теперь вместо сортировки нажать на кнопку «Фильтр».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Путь к фильтрации данных таблицы в Эксель
  1. В появившемся окошке надо поставить галочку напротив значения «(Пустые)».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Выбор пустых строк для фильтрации
  1. Проверить, что все пустые ячейки в табличке выделились и удалить их стандартным методом, рассмотренным выше.

Перед выполнением способа фильтрации данных понадобится выделить весь диапазон таблицы, иначе фильтрация будет осуществляться только до первой пустоты.

Обратите внимание! Для деинсталляции пустых ячеек рассмотренным выше способом пользователю потребуется аккуратно отфильтровать каждый столбец в таблице, чтобы не удалить нужную информацию.

Как убрать пустые строки в Excel с помощью выделения группы ячеек

В Эксель есть встроенный инструмент, с помощью которого можно группами выделять ячейки. С его помощью удаление пустот производится по алгоритму:

  1. Выделить всю таблицу ЛКМ.
  2. Кликнуть по значку лупы графе вкладок сверху окна программы. Это меню «Найти и выделить».
  3. В контекстном меню щелкнуть по строчке «Выделить группу ячеек…».

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Выделение группы ячеек в Эксель
  1. В отобразившемся окне поставить тумблер в поле «Пустые ячейки» и щелкнуть по «ОК». В таблице выделятся все пустоты.

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Выбор пустых ячеек в появившемся окошке
  1. Удалить строку методом пробелов и проверить результат.

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Автоматическое выделение пустот таблицы

Как удалить пустые строки в Экселе с помощью вспомогательного столбца

Для деинсталляции пустот рядом с таблицей можно создать столбец, который будет выступать в роли вспомогательного элемента. Это один из самых быстрых и надежных способов удаления. Чтобы реализовать данный метод, требуется выполнить несколько простых манипуляций по пошаговой инструкции:

  1. Создать справа от исходной таблицы еще один столбик и назвать его, к примеру, «Пустая строка», чтобы не путаться в дальнейшем.
  2. Записать формулу «Считать пустоты», указав соответствующий диапазон, в котором программа выполнит проверку на наличие пустых строк.
  3. Когда пустые строчки будут обнаружены, их останется только выделить и деинсталлировать.

kak-udalit-pustye-stroki-v-excel-4-varianta-udaleniya-pustyh-strok-v-tablice-excel

Подсчет пустот во вспомогательном столбце

Важно! Данная формула выглядит следующим образом: «=СЧИТАТЬПУСТОТЫ(А6:D6)». Вместо букв в скобках указывается диапазон ячеек.

Заключение

Таким образом, существует несколько способов удаления пустых строк в Microsoft Excel, каждый из них актуален для конкретного случая. Чтобы разбираться в теме, необходимо внимательно ознакомиться с вышеизложенной информацией.

Оцените качество статьи. Нам важно ваше мнение:

Skip to content

Как удалить пустые строки

На чтение 3 мин. Просмотров 4.2k.

Что делает макрос: Работа с Excel достаточно долгая, и вы увидите, что пустые строки часто могут вызвать хаос на многих уровнях. Они могут вызывать проблемы с формулами, ввести риск при копировании и вставке, а иногда вызывают странное поведение в сводных таблицах. Если вы вручную пытались выискать и удалить пустые строки в ваших данных, этот макрос может помочь автоматизировать эту задачу.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

В этом макросе, мы используем свойство UsedRange объекта ActiveSheet, чтобы определить диапазон c которым мы работаем. Свойство UsedRange дает диапазон, который охватывает ячейки, которые были использованы для ввода данных. Затем устанавливается счетчик, который начинается в последней строке используемого диапазона, чтобы проверить, вся ли строка пуста. Если вся строка действительно пуста, мы убираем строку. Мы продолжаем делать то же самое для каждого цикла, каждый раз увеличивая счетчик на предыдущей строке.

Код макроса

Sub UdalitPustieStroki()
'Шаг 1: Объявляем переменные
Dim MyRange As Range
Dim iCounter As Long
'Шаг 2: Указываем диапазон
Set MyRange = ActiveSheet.UsedRange
'Шаг 3: Начинаем обратный цикл
For iCounter = MyRange.Rows.Count To 1 Step -1
'Шаг 4: Если строка пустая, удаляем ее
If Application.CountA(Rows(iCounter).EntireRow) = 0 Then
Rows(iCounter).Delete
End If
'Шаг 5: Увеличиваем счетчик
Next iCounter
End Sub

Как этот код работает

  1. Макрос первым объявляет две переменные. Первая переменная является переменной объекта называется MyRange. Это переменная объект, который определяет наш целевой диапазон. Другая переменная является переменной Long Integer называется iCounter. Эта переменная служит инкрементного счетчика.
  2. На шаге 2 макрос заполняет переменную MyRange со свойством UsedRange объекта ActiveSheet. Свойство UsedRange дает диапазон, который охватывает клетки, которые были использованы для ввода данных. Обратите внимание, что, если мы хотим указать фактический диапазон или именованный диапазон, мы могли бы просто ввести свое название — Range
    («MyNamedRange»).
  3. На этом этапе макрос устанавливает параметры для инкрементного счетчика, чтобы начать на максимальном количестве для диапазона (MyRange.Rows.Count) и заканчивается в 1 (первая строка выбранного диапазона). Обратите внимание, что мы используем Шаг-1 классификатор. Поскольку мы указываем шаг -1, Excel знает, что мы будем увеличивать счетчик в обратном направлении, двигаясь назад один шаг на каждой итерации. В целом, Шаг 3 говорит Excel, чтобы начать в последней строке выбранного диапазона, двигаясь назад, пока он не дойдет до первой строки диапазона. При работе с диапазоном, вы можете явно вызвать какую-либо конкретную строку в диапазоне, передавая номер индекса строки к коллекции Rows диапазона. Например, диапазон
    («D6: D17»). Ряды (5) указывает на пятой строки диапазона D6: D17.
  4. На шаге 4, макрос использует переменную iCounter как номер индекса для коллекции Строки MyRange. Это помогает точно определить какой именно ряд мы обрабатываем в текущем цикле. Макрос проверяет, являются ли ячейки в этой строке пустыми. Если они пусты, макрос удаляет всю строку.
  5. На шаге 5, макрос возвращается к началу цикла, увеличивая счетчик.

Как использовать

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши personal.xlb в окне Project.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.

Pustie stroki 1 5 вариантов, как удалить пустые строки в Excel

Доброго времени суток друзья!

Эту статью я написал с целью описать 5 простых вариантов, как возможно удалить пустые строки в Excel. Частенько после импорта данных или простого копирования с другого источника мы получаем пустые строки и столбцы, что в дальнейшем может негативно сказаться и осложнить работу с информацией.

Разрывы, которые возникают в таблице благодаря возникшим пустотам, могут помешать вам эффективно ее использовать. Возникают такие проблемы:

  • ошибки при автоматическом построении разнообразных формул, графиков, диаграмм;
  • пустые строки, выполняют роль разделителя вычисляемой области и т.п.;

Избежать таких ошибок очень легко и очень просто, нужно всегда следить постоянно за качеством вашей информации и при выявлении ненужных пробелов в ваших данных, удалять их. Найти и удалить незаполненые строки, столбцы и ячейки можно 5 способами:

  1. С помощью сортировки информации;
  2. С помощью наложения фильтра;
  3. С помощью меню выделения группы ячеек;
  4. С помощью формулы массива;
  5. С помощью макроса (VBA).

Сортировка

Это самый простой способ убрать с вашей рабочей области или вычисляемого диапазона чистые строки. Вам нужно выделить диапазон, выбрать на вкладке «Данные» кнопку «Сортировка» и в предоставленном диалоговом окне выбираем вариант сортировки. Программа всё отсортирует по полочкам, и вы можете удалить пустые строки.

Pustie stroki 2 5 вариантов, как удалить пустые строки в Excel

Будьте внимательны! При использовании сортировки в таблице, которая имеет в своем составе несколько столбцов, вы можете нарушить целостность информации, ваши данные могут сместиться на другие ряды. Для избегания этой проблемы при выборе сортировки, нужно выделить всю таблицу и применить сортировку для всего выделенного объема.

Если очень важен порядок следования строк в таблице, вам стоит для начала создать столбик с порядковой нумерацией рядов, а после сортировки и удаления пустых срок в таблице Excel, снова выстроить данные по этому столбику.

Фильтрация

Этот способ также является простым и доступным абсолютно любому пользователю. Для применения фильтра на таблицу вам необходимо на вкладке «Главная» в разделе «Редактирование» нажимать кнопку «Сортировка и фильтр» и в открывшемся пункте меню выбираете «Фильтр».

Pustie stroki 3 5 вариантов, как удалить пустые строки в Excel

После включения фильтра, вам нужно выбрать столбец и в выпадающем меню указать отображение пустых ячеек. Дольше вы выделяете полученные пустые строки и просто-напросто удаляете их.

Выделение группы ячеек

Я бы и этот способ причислил к достаточно простым и лёгким. Для применения этого варианта вам нужен инструмент «Выделение группы ячеек». Удалить незаполненые строки возможно в несколько этапов:

  • выделение нужного диапазона;
  • выбираем вкладку «Главная», в блоке «Редактирование», кликаем «Найти и выделить» и в выпадающем меню выбираете «Выделение группы ячеек»;

Pustie stroki 4 5 вариантов, как удалить пустые строки в Excel

  • в диалоговом окне, в разделе «Выделить» отмечаем пункт «пустые ячейки»;

Pustie stroki 5 5 вариантов, как удалить пустые строки в Excel

  • переходим во вкладку «Главная» и нажимаем кнопку «Ячейки» и выбираем пункт «Удалить»;
  • в диалоговом окне выбираете пункт «удалить ячейки со сдвигом вверх» и все незаполненые строки будут удалены.

Формула массива

Этот способ уже на искушенного пользователя. Хотя ничего уж слишком сложного и нет, тем не менее, этот способ я увидел у Николая Павлова на его сайте и решил добавить его для полноты информации о возможностях чистки от пустых строк с применением формулы массива.

Итак, в чём же состоит этот способ по удалению пустых строк в Excel и как его применять:

  • для большей простоты дадим имена нашим диапазонам, для этого на вкладке «Формулы» нажимаете «Диспетчер имен» и присваиваете для двух диапазонов имена, например для изначальных данных с пустыми ячейками — «Пустые», а для обработанных — «БезПустых». Обязательное условие в том, что диапазоны должны иметь одинаковый результат, но вот размещение этих диапазонов могут и отличатся, это не критично;

Pustie stroki 6 5 вариантов, как удалить пустые строки в Excel

  • следующим шагом это введение в первую ячейку второго диапазона формулу:

=ЕСЛИ( СТРОКА() — СТРОКА (БезПустых) +1> ЧСТРОК( Пустые) — СЧИТАТЬПУСТОТЫ (Пустые);»»; ДВССЫЛ ( АДРЕС (НАИМЕНЬШИЙ ((ЕСЛИ (Пустые <>«»; СТРОКА (Пустые); СТРОКА()+ ЧСТРОК( Пустые))); СТРОКА() — СТРОКА (БезПустых)+1); СТОЛБЕЦ( Пустые);4))). Да я сам знаю, что формула страшная, сам, когда ее увидел, обалдел, тем не менее, она рабочая и исправно выполняет возложенные на нее обязанности;

  • после прописания формулы, вам нужно окончить введение формулы «гарячей» комбинацией клавиш Ctrl+Shift+Enter, это необходимо для того, что бы формула была введена как формула массива. Теперь используя возможность в Excel как авто заполнение (копирование формулы, протягивая за крестик в углу) вы получили исходный диапазон, но уже без пустых ячеек.

Pustie stroki 7 5 вариантов, как удалить пустые строки в Excel

Макрос

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

Перейдите во вкладку «Сервис», выберите раздел «Макрос» и нажмите кнопку «Редактор Visual Basic» или нажав ALT+F11 и в появившемся диалоговом окне редактора нажимаем «Insert» — «Module».

Pustie stroki 8 5 вариантов, как удалить пустые строки в Excel

В открывшимся, пустом модуле ставим код:

Понравилась статья? Поделить с друзьями:
  • Макрос на создание новой книги excel
  • Макрос на снятие защиты с листов excel
  • Макрос на сложение excel
  • Макрос на расчет excel
  • Макрос на работу с ячейкой excel