Макрос удаляющий все пустые строки в excel

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

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

Давайте рассмотрим несколько способов решения этой задачи.

Способ 1. Поиск пустых ячеек

Это, может, и не самый удобный, но точно самый простой способ вполне достойный упоминания.

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

Исходные данные

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

  1. Выделяем диапазон с городами (B2:B26)
  2. Нажимаем клавишу F5 и затем кнопку Выделить (Go to Special) или выбираем на вкладке Главная — Найти и выделить — Выделить группу ячеек (Home — Find&Select — Go to special).
  3. В открывшемся окне выбираем опцию Пустые ячейки (Blanks) и жмём ОК – должны выделиться все пустые ячейки в первом столбце нашей таблицы.
  4. Теперь выбираем на вкладке Главная команду Удалить — Удалить строки с листа (Delete — Delete rows) или жмём сочетание клавиш Ctrl+минус — и наша задача решена.

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

Способ 2. Поиск незаполненных строк

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

Взгляните, например, на следующую таблицу — как раз такой случай:

Исходные данные с пустыми ячейками

Здесь подход будет чуть похитрее:

  1. Введём в ячейку A2 функцию СЧЁТЗ (COUNTA), которая вычислит количество заполненных ячеек в строке правее и скопируем эту формулу вниз на всю таблицу:

    Считаем количество заполненных ячеек

  2. Выделим ячейку А2 и включим фильтр командой Данные — Фильтр (Data — Filter) или сочетанием клавиш Ctrl+Shift+L.
  3. Отфильтруем по вычисленному столбцу нули, т.е. все строки, где нет данных.
  4. Осталось выделить отфильтрованные строки и удалить их командой Главная — Удалить -’ Удалить строки с листа (Home — Delete — Delete rows) или сочетанием клавиш Ctrl+минус.
  5. Отключаем фильтр и получаем наши данные без пустых строк.

К сожалению, со столбцами такой трюк уже не проделать – фильтровать по столбцам Excel пока не научился.

Способ 3. Макрос удаления всех пустых строк и столбцов на листе

Для автоматизации подобной задачи можно использовать и простой макрос. Нажмите сочетание клавиш Alt+F11 или выберите на вкладке Разработчик — Visual Basic (Developer — Visual Basic Editor). Если вкладки Разработчик не видно, то можно включить ее через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).

В открывшемся окне редактора Visual Basic выберите команду меню Insert — Module и в появившийся пустой модуль скопируйте и вставьте следующие строки:

 
Sub DeleteEmpty()
    Dim r As Long, rng As Range

    'удаляем пустые строки
    For r = 1 To ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        If Application.CountA(Rows(r)) = 0 Then
            If rng Is Nothing Then Set rng = Rows(r) Else Set rng = Union(rng, Rows(r))
        End If
    Next r
    If Not rng Is Nothing Then rng.Delete
    
    'удаляем пустые столбцы
    Set rng = Nothing
    For r = 1 To ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
        If Application.CountA(Columns(r)) = 0 Then
            If rng Is Nothing Then Set rng = Columns(r) Else Set rng = Union(rng, Columns(r))
        End If
    Next r
    If Not rng Is Nothing Then rng.Delete

End Sub

Закройте редактор и вернитесь в Excel. 

Теперь нажмите сочетание Alt+F8 или кнопку Макросы на вкладке Разработчик. В открывшемся окне будут перечислены все доступные вам в данный момент для запуска макросы, в том числе только что созданный макрос DeleteEmpty. Выберите его и нажмите кнопку Выполнить (Run) — все пустые строки и столбцы на листе будут мгновенно удалены.

Способ 4. Запрос Power Query

Ещё один способ решить нашу задачу и весьма частый сценарий — это удаление пустых строк и столбцов в Power Query.

Сначала давайте загрузим нашу таблицу в редактор запросов Power Query. Можно конвертировать её в динамическую «умную» сочетанием клавиш Ctrl+T или же просто выделить наш диапазон данных и дать ему имя (например Данные) в строке формул, преобразовав в именованный:

Присваиваем имя диапазону данных

Теперь используем команду Данные — Получить данные — Из таблицы/диапазона (Data — Get Data — From table/range) и грузим всё в Power Query:

Загруженные в Power Query данные

Дальше всё просто:

  1. Удаляем пустые строки командой Главная — Сократить строки — Удалить строки — Удалить пустые строки (Home — Remove Rows — Remove empty rows).
  2. Щёлкаем правой кнопкой мыши по заголовку первого столбца Город и выбираем в контекстном меню команду Отменить свёртывание других столбцов (Unpivot Other Columns). Наша таблица будет, как это технически правильно называется, нормализована — преобразована в три столбца: город, месяц и значение с пересечения города и месяца из исходной таблицы. Особенность этой операции в Power Query в том, что она пропускает в исходных данных пустые ячейки, что нам и требуется:

    Отмена свертывания (unpivot) таблицы

  3. Теперь выполяем обратную операцию — сворачиваем полученную таблицу обратно в двумерную, чтобы вернуть ей исходный вид. Выделяем столбец с месяцами и на вкладке Преобразование выбираем команду Столбец сведения (Transform — Pivot Column). В открывшемся окне в качестве столбца значений выбираем последний (Значение), а в расширенных параметрах — операцию Не агрегировать (Don’t aggregate):

    Сворачиваем обратно

  4. Останется выгрузить результат обратно в Excel командой Главная — Закрыть и загрузить — Закрыть и загрузить в… (Home — Close&Load — Close&Load to…)

    Результат

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

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

Удаление пустых строк с помощью кода 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


Исходные коды макросов для выделения, удаления, скрытия и добавления пустых строк в таблицу 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 строк и тогда они все будут обрабатываться макросом, а пользователь будет ждать.

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. Введите или вставьте код.

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. Намного проще обрабатывать данные в…

При составлении таблиц в 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, каждый из них актуален для конкретного случая. Чтобы разбираться в теме, необходимо внимательно ознакомиться с вышеизложенной информацией.

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

You need to test that there are any blanks.

If WorksheetFunction.CountBlank(Worksheet.Columns("A:A")) > 0 Then
    Worksheet.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If

You can just use On Error Resume Next to skip over the line if there are no blanks, but it’s generally preferable to test for a specific condition, rather than assuming you know what the error will be.

As far as I can see you’d only get the «No Cells Found» message if every cell in Column A has a value.

EDIT: Based on @brettdj’s comments, here’s an alternative that still uses CountBlank:

If WorksheetFunction.CountBlank(Intersect(worksheet.UsedRange, ws.Columns("A:A"))) > 0 Then
    worksheet.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If

Of course UsedRange is notoriously fickle and may be bigger than it appears. I think it’s best to first determine the actual range where the rows are to be deleted and then check the SpecialCells in that range, e.g.:

Sub DeleteRows()
Dim ws As Excel.Worksheet
Dim LastRow As Long

Set ws = ActiveSheet
LastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
With ws.Range("A2:A" & LastRow)
    If WorksheetFunction.CountBlank(.Cells) > 0 Then
        .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End If
End With
End Sub

One last note — I changed the variable from «worksheet» to «ws» as «worksheet» is an Excel reserved word.

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

​Смотрите также​ строка не известно,​: День добрый дамы​Нужен макрос удаляющий​ определял как-бы диапазон,​ то удалить строчку​

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

​ цикле​’ Author :​ & «:A» &​End If​ инструментов, тогда в​ можно выделить не​Возможно такое? что​

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

​ в центре» по​ через​Else​ ввод значений, изменение​Исходные коды макросов для​ иногда может быть​ и господа.​ эти всегда разные​ до какой строчки​ нужно..​For i =​ The_Prist???​ lastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete​End If​ конце кода для​ до конца пустой​ бы Макрос видел​ всем строкам столбцов​Файл — Параметры -​diapaz2.EntireRow.Hidden = True​ формата границ или​ выделения, удаления, скрытия​

​ и вторая -​Пользуюсь данным кодом,​

редактор Visual Basic.

​ строки (27, 28,​ нужно удалять пустые​И может ли​ lLastRow To 1​’ Topic_HEADER :​End Sub​

​Next​
​ переменной diapaz2.Select следует​ столбец и потерять​
​ название что ему​ E:F и строкам​
​ Настройка ленты (File​End If​
​ цвета фона и​ и добавления пустых​
​т.е. начиная с​
​ всё замечательно, но...​ 30, 33)​
​ строки, чтобы по​ макрос автоматически выполняться​
​ Step -1​ Удаление всех пустых​
​den45444​If diapaz2 Is​
​ изменить метод на​
​ ценные данные. Лучше​ надо удалить (строчку)​
​ столбцов H:I ?​
​ - Options -​
​End Sub​
​ т.п.​ строк в таблицу​
​ последней неизвестной строки​В результате объединения​
​Pelena​
​ всей странице в​
​ при открытии файла..?​
​If Application.CountA(Rows(i)) =​
VBA-код макроса.

​ строк в таблице​: А вот макрос​ Nothing Then​ [Delete]:​ написать свой макрос​Roman777​KoGG​ Customize Ribbon)​Пример третьего VBA-кода:​Далее в цикле проверяются​ Excel по условию​

​ и заканчивая второй​

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

​ сдвоенных строк происходит​: Готовое решение Удаление​ низ не пошел.​Alex_ST​ 0 Then Rows(i).Delete​’ Topic_URL :​ на копирование листа​MsgBox «Ненайдено ниодного​diapaz2.[Delete]​ для автоматического выделения​:​: …​.​Как вставить строки макросом?​ все строки в​

​ пользователя.​ строкой нужно найти​ сдвиг вниз полупустой​ строк по критерию​А уже пустые​: ну, тогда и​Next​

​’ Post_Author :​ в другую книгу​ пустого столбца!»​Удалить пустые столбцы макросом:​ всех пустых столбцов​Dersarius​With ActiveSheet .Cells.UnMerge…​В открывшемся окне редактора​ Если мы изменим​

​ этом диапазоне, каждая​Есть таблица годового бюджета,​ строки с пустой​ строки.​Апострофф​ строки определяет по​ пишите:​проверку условия на​’ Post_URL :​ + удаление пустых​Else​Sub DelColumn()​ в таблице Excel.​

​, Добрый день! Сначало​или​ Visual Basic выберите​ код в этом​ по отдельности, на​ разделенная на отдельные​ ячейкой A и​И данная полупустая​: Вариант -​

​ столбцу С с​

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

​If Cells(i,15).Text =​ под свои нужды…​’ DateTime :​ строк в диапазоне.​diapaz2.[Insert]​Dim i As​Откройте редактор кода макросов​ ищете последнюю заполненную​With ActiveSheet .Columns(«E:F»).UnMerge​ в меню​ же месте как​ количество непустых ячеек.​ группы статей расходов​

​ удалить её.​

​ строка всегде лежит​

​200?'200px':''+(this.scrollHeight+5)+'px');">For r = 20​
​ пустыми ячейками.​ "" Then Rows(i).Delete​
​miwgun​ 10.09.2006​
​Может кому-нибудь пригодится:​End If​
​ Long​ Visual Basic (ALT+F11):​
​ строку, потом циклом​
​ .Columns("H:I").UnMerge​Insert - Module​
​ показано ниже, то​ В том случаи​
​ и кварталы. Каждая​200?'200px':''+(this.scrollHeight+5)+'px');">PS = Range("A" &​
​ под массивом заполненных​ To Cells.Rows.Count​
​ТО есть логика​
​а выполнять какие-либо​: Если это возможно​
​' Purpose :​
​200?'200px':''+(this.scrollHeight+5)+'px');">Private Const strName As​
​End Sub​
​Dim diapaz1 As​В редакторе создайте новый​
​ проверяете пустая или​safed195​
​и в появившийся​
​ получиться инструмент для​
​ если метод CountA​
​ группа статей расходов​

​ Rows.Count).End(xlUp).Row​

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

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

​ ячеек A1:M… (в​If Cells(r, 1).Borders(xlEdgeRight).LineStyle​ такая.​ необратимые операции с​ уберите синий треугольник​ Удаление всех пустых​ String = «Общие​Пример четвертого VBA-кода:​ Range​

​ модуль выбрав инструмент:​

​ нет строчка (если​

​: KoGG, спасибо, все​
​ пустой модуль скопируйте​ добавления и вставки​
​ возвращает значение 0,​ разделена между собой​
​For i =​ нашем случае M44).​
​ = xlNone Then​Смотрит стольбец G,​
​ денными автоматом при​
​ пожалуйста..​ строк в таблице​
​ файлы.xlsm"​Если же вы хотите,​
​Dim diapaz2 As​ «Insert»-«Module» и введите​
​ у вас определяется​ работает. Аж прям​
​ и вставьте следующие​
​ строк после пустых:​ то адреса этих​
​ пустыми строками:​
​ PS To 2​
​ И у этой​
​ Exit For​ ага всего 157​
​ открытии как-то стрёмно.​Файл в приложении..​
​' Notes :​
​Private Const strNameL​
​ чтобы макрос работал​
​ Range​

​ в него этот​

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

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

​ именно первым столбцом​ не верится. Я​ строки:​diapaz2.[Insert]​ ячеек дополняют несмежный​Нам необходимо удалить все​ Step -1​ полупустой строки всегда​

​If Cells(r, 2)​

​ строк.​

​Уж лучне кнопочку​
​Alex_ST​'---------------------------------------------------------------------------------------​
​ As String =​ исключительно только для​
​Set diapaz1 =​ VBA-код макроса:​
​ пустота строки, тогда​ еще чайник, три​
​Sub DeleteEmptyRows() LastRow​
​Добавить:​ диапазон в переменной​
​ пустые строки в​If Cells(i, 1)​
​ заполнены столбец M,​ = "" Or​
​Начинает смотреть столбец​ сделать.​
​: И уж поучитесь​
​If MsgBox("Удалить все​ "СМЕТА"​
​ пустых столбцов предварительно​
​ Application.Range(ActiveSheet.Range("A1"), _​
​Sub SelectColumn()​
​ будет так):​ ночи решал задачи,​
​ = ActiveSheet.UsedRange.Row -​Sub AddLine()​
​ diapaz2 еще на​
​ таблице. Для этого​
​ = ""Then​
​ I и L​

​ Cells(r, 2) =​

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

​ С, так А1,​miwgun​ формулировать вопросы.​ пустые строки на​’вывод листа strNameL​ выделенного определенного диапазона​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​Dim i As​200?’200px’:»+(this.scrollHeight+5)+’px’);»>sub удаление_строк()​ не получилось…​ 1 + ActiveSheet.UsedRange.Rows.Count​

​Dim i As​

​ одну пустую строку.​ сначала необходимо их​Rows(i).Delete​

​ (в нашем примере​ «…» Or Cells(r,​ А2 пустая, Вторую​: С удалением разобрался,​Все ответы В​ листе?», vbOKCancel Or​ в файл strName​ листа перед запуском​For i =​ Long​i_n = cells(rows.count,1).end(xlUp).row​safed195​ ‘определяем размеры таблицы​ Long​В конце макроса выделяются​ выделить. Если выделять​End If​ это 45 строка).​ 2) = «…»​

exceltable.com

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

​ стороку удаляю. А3,​ спасибо.​ ТОЧНОСТИ соответствуют вопросу-теме​ vbQuestion Or vbDefaultButton1,​Sub копия_для_договора()​ макроса, то в​ 1 To diapaz1.Columns.Count​Dim diapaz1 As​For i=1 to​: А можно прописать​ Application.ScreenUpdating = False​Dim diapaz1 As​

​ все пустые строки,​ вручную, то потребуется​Next​Думал удалить её​ Then Rows(r).Delete: r​ А4 заполнены, А5​Подскажите еще пожалуйста,​ топика: «Удаление пустых​

​ «Удалить пустые строки?»)​Dim str1 As​ начале макроса следует​If WorksheetFunction.CountA(diapaz1.Columns(i).EntireColumn) =​ Range​​ i_n​ ​ через команды цикличность?​ ​ For r =​ Range​​ находящиеся внутри диапазона​ много времени и​Этот код удаляет​ через:​​ = r -​ пустая, 5ю строку​ как одним макросом​ строк»​​ = vbCancel Then​

​ String​ изменить строку создания​ 0 Then​​Dim diapaz2 As​​if cells(i,1)=»» then​ Например, имеются файлы​ LastRow To 1​Dim diapaz2 As​

​ определенным переменной diapaz2.​ сил. Кроме того,​ все строки между​200?’200px’:»+(this.scrollHeight+5)+’px’);»>s = Range(«A» &​ 1​ удаляю. и так​ обработать все эксель-книги​Что просили, то​ Exit Sub​Dim firstRow&, lastRow&,​ экземпляра объекта для​If diapaz2 Is​ Range​rows(i).delete​ «тест1» и «тест2».​ Step -1 ‘проходим​

​ Range​ Если же таблица​

​ нужно еще быть​ последней первой/верхней и​​ Rows.Count).End(xlUp).Row​​Next r​​ до последней определенной​​ из конкретного каталога(включая​​ и получили. Тем​Dim lLastRow As​ lSt&​ переменной diapaz1, на:​ Nothing Then​Set diapaz1 =​end if​​ Я обращаюсь к​​ от последней строки​Set diapaz1 =​​ не сдержит ни​​ уверенным что строка​ самой нижней 44ой​Cells(s + 1,​

planetaexcel.ru

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

​RAN​​ по столбцу G​ вложенные каталоги)?​ более, что пример​ Long, i As​str1 = ThisWorkbook.Path​Читайте также: Как выделить​
​Set diapaz2 =​ Application.Range(ActiveSheet.Range(«A1»), _​next i​

​ файлу «тест1» и​​ до первой If​ Application.Range(ActiveSheet.Range(«A1»), _​ одной пустой строки,​ действительно является пустой,​ (по столбцу «A»)​ 1) =​:​ ячейки.​Alex_ST​ не приложили…​ Long​ & Application.PathSeparator​ строки в Excel​
​ diapaz1.Columns(i).EntireColumn​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​end sub​ выполняю определенную процедуру,​ Application.CountA(Rows(r)) = 0​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​ тогда выводиться соответственное​ чтобы вместе с​ и не удаляет​Но вот куда​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Мяу()​JayBhagavan​

​: Ну, это уж​​Тут народ что,​lLastRow = ActiveSheet.UsedRange.Row​Workbooks.Open Filename:=str1 &​ макросом.​Else​For i =​_Boroda_​

​ потом обращаюсь к​​ Then Rows(r).Delete ‘если​For i =​ сообщение.​

​ ней не удалить​​ 45ую строку.​ вставить .Delete?​Dim lr&, i&​

​: Spaunrus, с Вас​​ совсем оффтоп.​
​ телепатически должен догадываться,​ — 1 +​ strName​

​Внимание! Следует помнить о​​Set diapaz2 =​ 1 To diapaz1.Columns.Count​:​ файлу2 и опять​ в строке пусто​ 1 To diapaz1.Rows.Count​​ важную информацию из​

​RAN​​Alex_ST​
​Application.ScreenUpdating = False​
​ файл-пример, согласно правил​
​Лучше уж завести​ по признаку отсутствия​

​ ActiveSheet.UsedRange.Rows.Count​​With Workbooks(strName)​ том, что если​ Application.Union(diapaz2, diapaz1.Columns(i).EntireColumn)​If WorksheetFunction.CountA(diapaz1.Columns(i).EntireColumn) =​Roman777​ ту же процедуру.​

​ — удаляем ее​​If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) =​Как удалить строку макросом?​ бюджета или формулу.​: Сорокпоследняя строка​: ОБЪЕДИНЁННЫЕ ЯЧЕЙКИ -​With ActiveSheet​ форума, в котором​ для рассмотрения вопроса​ каких данных в​Application.ScreenUpdating = False​ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)​ таким образом создавать​End If​ 0 Then​, а если несколько​ Но бывает, что​ Next r End​ 0 Then​ Если нужно сделать​ Для автоматического решения​

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>PS = Cells.Find(«*», ,​​ ЗЛО!!!​lr = .Columns(1).Find(«Исполнитель»,​ выделены строки под​ обработки нескольких файлов​

​ каких столбцах должны​​For i =​lSt = Columns(«A:A»).Find(What:=»КОНЕЦ​ экземпляр объекта для​End If​If diapaz2 Is​

​ пустых подряд?​​ файла «тест1» нет​

​ Sub​

​If diapaz2 Is​

​ так чтобы макрос​​ данной задачи лучше​

​ , , xlByRows,​​Отвыкайте от них​ , , xlPart).Row​ удаление.​
​ директории отдельную тему,​ удаляться строки?​ lLastRow To 1​ ТАБЛИЦЫ»).Row​ переменной diapaz1, то​Next​ Nothing Then​
​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub tt()​ и надо, пропустив​Закройте редактор и вернитесь​ Nothing Then​
​ автоматически не только​ написать свой макрос,​ xlPrevious).Row​ сами и отучайте​ — 3​Spaunrus​ например, с названием​Alex_ST​ Step -1​firstRow = 1​ тогда нельзя перед​If diapaz2 Is​Set diapaz2 =​i_n = Cells(Rows.Count,​

​ его, обратиться к​​ в Excel.​​Set diapaz2 =​​ выделял, но и​ который сам проверит​MrRuslanBB​ других.​For i =​: Пример во вложении.​ что-то типа:​: А приложение у​If Application.CountA(Rows(i)) =​lastRow = lSt​

CyberForum.ru

Макрос удаление не нужных строк (Макросы/Sub)

​ запуском макроса выделять​​ Nothing Then​ diapaz1.Columns(i).EntireColumn​ 1).End(xlUp).Row​
​ файлу «тест2». Какой​Теперь нажмите сочетание Alt+F8​
​ diapaz1.Rows(i).EntireRow​ сам удалял пустые​ и выделит все​: Доброе утро!​Yar4i​
​ lr To 20​На самом деле,​»Как макросом обработать​ вас на компе​ 0 Then Rows(i).Delete​ — 1​ все ячейки листа​
​MsgBox «Ненайдено ниодного​Else​For i =​ командой можно прописать​

​ или кнопку​​Else​​ целые и смежные​​ пустые строки в​Напишите пожалуйста макрос,​: да я знаю.​ Step -1​ даже наверно удобней,​ все Excel-файлы из​ что ли?​Next​Range(«A» & firstRow​
​ или все ячейки​
​ пустого столбца!"​
​Set diapaz2 =​ i_n To 1​
​ эту цикличность, то​
​Макросы​
​Set diapaz2 =​
​ диапазоны ячеек без​
​ таблице годового бюджета.​

​ который​​я неверно написал…​​If Len(.Cells(i, 2))​​ чтобы Макрос определял​ каталога(включая вложенные каталоги)?»​
​miwgun​
​Application.ScreenUpdating = True​ & ":A" &​
​ любого столбца, строки.​Else​ Application.Union(diapaz2, diapaz1.Columns(i).EntireColumn)​
​ Step -1​ есть последовательное обращение​
​на вкладке​
​ Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)​
​ использования других инструментов,​
​Откройте редактор Visual Basic​

​удалит все пустые строки​​ не в результате​​ = 0 Or​​ по какую строчку​А если отвечать​: Еще одна попытка​End Sub​ lastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete​ Иначе это затормозит​diapaz2.[Delete]​End If​
​If Cells(i, 1)​
​ ко всем файлам​Разработчик​
​End If​
​ тогда в конце​ (ALT+F11):​
​ со сдвигом вверх​
​ "объединения", а в​
​ Left$(.Cells(i, 2).Value, 1)​
​ работать, по столбцу​
​ в пределах данной​
​miwgun​

​Sub DeleteEmptyRows2()​​ActiveSheet.Shapes(«Button 1»).Delete​
​ программу Excel, так​
​End If​End If​
​ = "" Then​ при их наличии?​
​.​
​End If​

​ кода для переменной​​И воздайте в нем​.​ результате «разъединения». Я​ Like «[. «​ А.​ темы, то смотрите​: Дружище!!​’—————————————————————————————​ActiveSheet.Shapes(«Button 2»).Delete​ как один лист​End Sub​

​Next​​Rows(i).Delete​KoGG​В открывшемся окне​Next​ diapaz2.Select следует изменить​ новый модуль для​Заполненных​:)

excelworld.ru

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

​ разъединяю уже объединённое​ & Chr(133) &​В примере выделенны​ топик «Создать список​Не кипятись!!)))​’ Procedure :​

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

​ActiveSheet.Shapes(«Button 3»).Delete​ содержит аж 1​Пример второго VBA-кода:​If diapaz2 Is​

Таблица поквартального бюджета.

​End If​: For Each wb_Tek​ будут перечислены все​If diapaz2 Is​ метод на [Delete]:​ текущей книги «Insert»-«Module»,​строк более 50 тыс.​ ранее каким-то хулиганом​ «]» Then .Rows(i).Delete​ желтым строки, которые​ файлов в виде​Файл я приложил..​ DeleteEmptyRows2​.Save​ 048 576 строк​Как скрыть пустые столбцы​ Nothing Then​Next i​ In Workbooks ‘​

​ доступные вам в​ Nothing Then​

редактор VB.

​diapaz2.[Delete]​ а потом запишите​, среди них очень​ и вот!)​Next​

Insert-Module. ​ должны быть в​
​ гиперсылок на листе"​После выполнения макроса​
​' Author :​.Close 0​
​ и тогда они​ макросом? Но если​
​MsgBox "Ненайдено ниодного​End Sub​
​ . . .​
​ данный момент для​MsgBox "Ненайдено ниодной​
​Удалить:​ в него следующий​
​ много пустых.​Причем разъединяю сразу​
​End With​ итоге удалены.​
​ ( ) и​
​ строки 1 343​ слэн​
​End With​
​ все будут обрабатываться​
​ вам нужно не​
​ пустого столбца!"​Roman777​
​ Next​ запуска макросы, в​
​ пустой строки!"​
​Sub DelLine()​
​ VBA-код макроса:​
​Учитывая такое количество​

​ как только скопирую​End Sub​Это при условии​ делайте сами на​ 461 708 736​

Выделить пустые столбцы.

​’ Topic_HEADER :​End Sub​ макросом, на что​ удалить, а только​Else​:​safed195​ том числе только​Else​Dim i As​Sub SelectLine()​ строк, предполагаю, что​

​ видимые ячейки на​Апострофф​ что размер таблицы​ основании данных там​ 839 932 у​ Почему не работает​AndreTM​ потребуются дополнительные ресурсы​ скрыть (например, при​diapaz2.Select​

​_Boroda_​: KoGG, а можно​ что созданный макрос​diapaz2.[Insert]​ Long​Dim i As​ макрос хорошо будет​ новый лист.​

​: ТС не говорил,​ и пустых строк​ рекомендаций гуру форума.​ меня должны остаться…​ макрос удаления пустых​: А форматирование ячеек​ системы и время.​ подготовке документа на​End If​, Вы правы, тут​ попросить формулу, чтобы​

​DeleteEmptyRows​End If​Dim diapaz1 As​ Long​ работать при использовании​Далее запускаю макрос​ что данные, не​ может меняться.​Spaunrus​Alex_ST​ строк?​ сметы при таком​

​den45444​

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

​ печать), тогда эту​End Sub​ не учитывал, что​ на Листе удалялись​. Выберите его и​End Sub​ Range​Dim diapaz1 As​массива​ удаляющий все строки,​ подлежащие удалению, не​Smiley​: Все привет!​: Файл примера -​

​’ Topic_URL :​

​ подходе не сбивается​

​: Помогите с решением​
​ строку кода следует​Теперь если нам нужно​
​ при удалении i-й​ все строки, начиная​
​ нажмите кнопку​Пример четвертого VBA-кода:​
​Dim diapaz2 As​ Range​
​.​
​ если ячейка B​ могут начинаться с​
​: Spaunrus, мой вариант​Это снова я!​
​ это, конечно, здорово,​' Post_Author :​
​ в копии?​ макроса. Нужно удалить​
​ модифицировать несколько иначе:​
​ удалить пустые столбцы​ строки i+1 строка​
​ с 1001 строки?​
​Выполнить (Run)​
​Если же вы хотите,​
​ Range​Dim diapaz2 As​
​Пример файла прикрепляю​ пуста, начиная с​
​ точки.​
​ вообще не катит?​
​Нашел вот такой​
​ но хотелось бы​

​ слэн​

Удалить столбцы.

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

​И ещё бы​ пустые строки в​diapaz2.EntireRow.Hidden = True​ из таблицы годового​ становится i-й. А​KoGG​- все пустые​ чтобы макрос работал​Set diapaz1 =​

​ Range​

​ во вложении.​

​ конца, но остается​
​Wasilich​Xapa6apga​
​ код:​ ещё знать, по​
​' Post_URL :​ добавить переименование созданного​
​ диапазоне, от первой​Скрыть пустые столбцы макросом:​
​ бюджета, выберите инструмент:​
​ я обычно вводил​:​
​ строки на листе​ исключительно только для​
​ Application.Range(ActiveSheet.Range("A1"), _​Set diapaz1 =​
​Hugo121​ 45 строка.​
​: Интересно, кто ставит​
​: Вариант , Вам​Sub Del_SubStr() Dim​
​ отсутствию данных в​
​' DateTime :​
​ листа, чтобы его​
​ строки до конца​Sub HidColumn()​
​ «РАЗРАБОТЧИК»-«Выполнить»-«Макросы»-«SelectColumn»-«Выполнить».​ переменную, которую вычитал​
​Не по теме:​
​ будут удалены.​
​ пустых строк предварительно​
​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​

​ Application.Range(ActiveSheet.Range(«A1»), _​

Скрыть.

Добавление пустых столбцов макросом

​: Массив никаким боком​Так как в​ в одном месте​ должен подойти на​ sSubStr As String​ каких столбцах должны​ 17.04.2010, 13:47​ потом можно было​

​ таблицы, с учетом​

​Dim i As​

​Все пустые столбцы автоматически​
​ на каждом шаге:​Rows("1001:" & Rows.Count).Delete Shift:=xlUp​
​safed195​ выделенного определенного диапазона​
​For i =​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​
​ в удалении строк​ 45ой строке ячейка​
​ три точки в​
​ 100%​ 'искомое слово или​
​ удаляться строки?​' Purpose :​
​ отыскать быстрее.​ того, что ниже​
​ Long​ выделены. Теперь достаточно​
​200?'200px':''+(this.scrollHeight+5)+'px');">sub удаление_строк()​
​safed195​: Имеется таблица. Если​
​ листа перед запуском​
​ 1 To diapaz1.Rows.Count​
​For i =​
​ листа участвовать не​ В пуста.​
​ другом троеточие -​lLastRow =ThisWB.Sheets(1).Cells(Rows.Count, "G"​
​ фраза(может быть указанием​
​Но в общем​
​ Удаление всех пустых​
​А по идее,​

​ таблицы находится текст​

Добавить пустой столбец.

​Dim diapaz1 As​ только воспользоваться встроенным​dim k as​: KoGG, спасибо!!!!!​ в столбце Н​ макроса, то в​If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) =​ 1 To diapaz1.Rows.Count​ может.​Pelena​ Chr(133)?​

​ ) .End(xlUp).Row»G» =​ на ячейку) Dim​ случае:​

​ строк в таблице​ надо вообще в​ с пустыми строками,​ Range​ инструментом Excel: «ГЛАВНАЯ»-«Ячейки»-«Удалить»-«Удалить​ long​mailomsk​ строки не содержат​ начале макроса следует​ 0 Then​If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) =​Другое дело если​: Начните цикл на​Так можно ставить​ Ставите имя столбца​ lCol As Long​заменяйте в цикле​’ Notes :​ «общий накопитель» скидывать​ которые должны оставаться.​

exceltable.com

Удаление пустых строк в диапазоне (Макросы/Sub)

​Dim diapaz2 As​​ строки с листа».​i_n = cells(rows.count,1).end(xlUp).row​: Из 1с выгружаются​ никаких значений (пустые)​ изменить строку создания​If diapaz2 Is​ 0 Then​ нужно переместить только​ строку ниже, либо​ что попало и​
​ по какому нужно​

​ ‘номер столбца с​​ макроса DeleteEmptyRows​​’—————————————————————————————​​ не сметы в​
​Пример прикрепляю​ Range​ Или нажать комбинацию​For i=1 to​

​ данные в таблицу​​ то такие строки​​ экземпляра объекта для​​ Nothing Then​If diapaz2 Is​ данные листа (оставив​
​ вычисляйте последнюю строку​ как попало -​ определить кол-во строк!​
​ просматриваемыми значениями Dim​If Application.CountA(Rows(i)) =​If MsgBox("Удалить все​
​ виде для печати,​den45444​
​Set diapaz1 =​
​ горячих клавиш CTRL+=.​ i_n​ exel 97/2003!​ надо удалить.​
​ переменной diapaz1, на:​Set diapaz2 =​
​ Nothing Then​ строки на местах,​
​ по столбцу М,​
​ пробел три точки,​
​Spaunrus​
​ lLastRow As Long,​
​ 0 Then Rows(i).Delete​
​ пустые строки на​

​ а даннве из​:​ Application.Range(ActiveSheet.Range(«A1»), _​ А после в​

​if cells(i-k,1)=»» then​​После этого данные​​Казалось бы проще​​Set diapaz1 = Selection​ diapaz1.Rows(i).EntireRow​

​Set diapaz2 =​​ со всем их​
​ а не по​
​ точка пробел точка​: Я наверно тупица)))​
​ li As Long​на проверку своего​
​ листе?", vbOKCancel Or​
​ смет, в единую​AndreTM​
​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​ появившемся окне «Удаление​rows(i-k).delete​
​ загружаю в Access,​

​ некуда. Не могу​​Читайте также: Как выделить​Else​ diapaz1.Rows(i).EntireRow​ форматированием, хотя можно​ А​
​ и т. д.​
​Вставил вот так,​ sSubStr = InputBox("Укажите​ условия.​
​ vbQuestion Or vbDefaultButton1,​ таблицу, с датами​, Благодарю за помощь.​
​For i =​ ячеек» выбрать опцию​
​k=k+1​
​ при проверке загрузки​ создать рабочий макрос!​
​ столбцы в Excel​Set diapaz2 =​
​Else​ и быстренько форматы​
​Yar4i​ Порядок какой то​
​ запускаю, ничего не​
​ значение, которое необходимо​
​Ну, например для​ "Удалить пустые строки?")​
​ и ссылками на​
​А если взять​ 1 To diapaz1.Columns.Count​
​ «столбец» и нажать​end if​ данных получается что​
​KoGG​
​ макросом.​
​ Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)​
​Set diapaz2 =​
​ удалить) - тогда​
​: а куда -1​
​ нужен.​

​ происходит(​​ найти в строке»,​ проверки по столбцам​ = vbCancel Then​ заказы/договора. Тогда в​
​ относительно ячейки со​If WorksheetFunction.CountA(diapaz1.Columns(i).EntireColumn) =​ ОК.​next i​ после или перед​
​: Sub Удалить_пустые_строки_H() Dim​Внимание! Следует помнить о​End If​ Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)​ можно переложить данные​ вписать? (или +1)​Yar4i4​Sub Del_Array_SubStr() Dim​ «Запрос параметра», «»​ С (столбец №​ Exit Sub​ последующем можно и​ значением «Итого на​ 0 Then​В начале кода мы​end sub​ данными есть пустые​ i& With ActiveSheet​

excelworld.ru

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

​ том, что если​​End If​
​End If​ из одного массива​По столбцу М​
​: Спасибо.​ ThisWB As Workbook​ lCol = Val(InputBox(«Укажите​
​ 3)и Е (столбец​On Error Resume​ анализ смет легко​ материал:» ?​If diapaz2 Is​ описываем диапазон ячеек​
​KuklP​
​ строки!​
​ For i =​
​ таким образом создавать​
​Next​
​End If​ в другой и​
​ думал, но этот​
​Моей радости нет​
​ Set ThisWB =​
​ номер столбца, в​
​ №5)цикл получается такой:​ Next​ прикрутить. Хотя я​
​den45444​ Nothing Then​ для переменной diapaz1,​
​: Проще:​Подскажите как через​
​ .Cells(.Rows.Count, «H»).End(xlUp).Row To​ экземпляр объекта для​If diapaz2 Is​Next​ выгрузить результат на​

​ столбец не стабилен.​​ границ. Ещё неделю​
​ ThisWorkbook Dim li&​
​ котором искать указанное​For i =​
​Dim RNG As​ не знаю, может​
​:​Set diapaz2 =​ с которым будем​
​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub www()​
​ макрос удалить эти​
​ 1 Step -1​
​ переменной diapaz1, то​ Nothing Then​
​If diapaz2 Is​ лист.​ В первых же​
​ назад я не​
​ lLastRow = ThisWB.Sheets(1).Cells(Rows.Count,​
​ значение», «Запрос параметра»,​ lLastRow To 1​ Range, x, n​ вы ведете учет​AndreTM​ diapaz1.Columns(i).EntireColumn​ работать. Он находиться​
​On Error Resume​ пустые строки, до​ If Trim$(.Cells(i, «H»))​
​ тогда нельзя перед​MsgBox «Ненайдено ниодной​ Nothing Then​
​К сожалению не​
​ двух столбцах идет​ представлял, что это​ «A»).End(xlUp).Row For li​
​ 1)) If lCol​ Step -1​
​ As Long, nr​
​ выполненных работ отдельными​
​, Как можно вставить​

​Else​
​ в границах между​
​ Next​ и после данных!​
​ = «» Then​ запуском макроса выделять​
​ пустой строки!»​MsgBox «Ненайдено ниодной​ могу сейчас посмотреть​ нумерация (нет номера​
​ выполнимо.​
​ = lLastRow To​ = 0 Then​
​If Cells(i,3)=»» And​
​ As Long, d​ табличками, где и​
​ данный макрос в​Set diapaz2 =​ ячейкой A1 и​
​Range(Cells(1, 1), Cells(Cells(Rows.Count,​
​Sub Udalenie_Pustyh_Strok() Dim​
​ .Rows(i).Delete Shift:=xlUp Next​ все ячейки листа​Else​ пустой строки!»​ файл, но может​ — строку не​Yar4i4​
​ 1 Step -1​ Exit Sub lLastRow​
​ Cells(i,5)=»» Then Rows(i).Delete​ As Long​ так все нормально…​ этот макрос:​ Application.Union(diapaz2, diapaz1.Columns(i).EntireColumn)​
​ последней используемой ячейкой​ 1).End(xlUp).Row, 1)). _​
​ r As Long,​ End With End​
​ или все ячейки​diapaz2.[Delete]​
​Else​
​ быть можно обойтись​ берем, а коль​
​: Доброго постпраздничного дня​ If ThisWB.Sheets(1).Cells(li, 3)​
​ = ActiveSheet.UsedRange.Row -​
​Next​
​Set RNG =​
​miwgun​
​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Const strName As​End If​ на рабочем листе​
​SpecialCells(4).EntireRow.Delete​
​ FirstRow As Long,​

​ Subили, если не​​ любого столбца. Иначе​End If​diapaz2.Select​ сортировкой? Так ненужные​ номер есть -​ Вам!​ = «» Then​
​ 1 + ActiveSheet.UsedRange.Rows.Count​
​miwgun​ ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, 23)​: Доброго Всем дня!!!!​ String = «Общие​End If​ Excel.​End Sub​ LastRow As Long​ определять последнюю строку​

​ это затормозит программу​​End Sub​End If​
​ строки сами уйдут​ то милости просим))​Пользуюсь Вашей версией​
​ ThisWB.Sheets(1).Rows(li).Delete Next li​ Application.ScreenUpdating = 0​: А например в​
​n = RNG.Row​При работе над​
​ файлы.xlsm»​
​Next​Примечание. Последняя используемая ячейка​

​_Boroda_​​ FirstRow = ActiveSheet.UsedRange.Row​ по конкретному столбцу​ Excel, так как​
​Пример второго VBA-кода:​

​End Sub​​ вниз, а нужные​Pelena​
​ макроса. Сегодня увидел,​ End Sub​ For li =​ этом файле, должны​
​ + 1​ дипломом возникла следующая​Private Const strNameL​If diapaz2 Is​
​ на листе –​: Да уж сколько​ LastRow = ActiveSheet.UsedRange.Rows.Count​ :​ один лист содержит​Как скрыть пустые строки​

​Теперь если нам нужно​​ со всеми форматами​: Я же не​ что макрос не​

​JayBhagavan​​ lLastRow To 1​

​ остаться эти строчки​​For Each x​
​ проблема:​
​ As String =​
​ Nothing Then​ это ячейка, для​ раз здесь писали,​ — 1 +​Sub Удалить_пустые_строки_H() Dim​

​ аж 1 048​​ макросом? Но если​ автоматически выделить все​ будут наверху.​ знаю, какой Вы​ сработал, т.к. ко​: Spaunrus, а так?​ Step -1 If​

​ 1 75 287​ In RNG.Rows​
​Имеется порядка 1500​ «СМЕТА»​
​MsgBox «Ненайдено ниодного​ которой были выполнены​
​ что проще, но​ ActiveSheet.UsedRange.Row For r​
​ i&, LastRow& With​ 576 строк и​ вам нужно не​ пустые строки в​Как вариант чтоб​
​ макрос используете.​ мне данные поступили​ Sub Del_Array_SubStr() lLastRow​
​ Cstr(Cells(li, lCol)) =​ 354..​
​nr = x.Row​

​ исходных экселек с​​’вывод листа strNameL​ пустого столбца!»​ любые изменения: ввод​ косячнее. На средних​ = LastRow To​
​ ActiveSheet LastRow =​ тогда они все​
​ удалить, а только​ таблице бюджета перед​ не потерять порядок​
​Вот например, из​

​ в неверном виде.​​ = Cells(Rows.Count, «A»).End(xlUp).Row​ sSubStr Then Rows(li).Delete​

​Соответственно, есть таких​​If nr >​
​ данными…​ в файл strName​Else​ значения, изменение границы,​ объемах еще нормально,​ FirstRow Step -1​ .UsedRange.Rows.Count — .UsedRange.Row​ будут обрабатываться макросом,​
​ скрыть (например, при​ тем как их​ — можно пронумеровать​

​ четвертого сообщения. Считается​​ В ячейке, определяющей​
​ For li =​ Next li Application.ScreenUpdating​ файлов 1500..​ n Then​Необходимо в каждом​Sub копия_для_договора()​diapaz2.EntireColumn.Hidden = True​ цвета фона или​
​ а на больших​

​ If Application.CountA(Rows(r)) =​​ + 1 For​ а пользователь будет​ подготовке документа на​ удалить, выберите инструмент:​
​ строки, вот тут​ номер строки, с​ удаление всей строки​

​ lLastRow To 1​​ = 1 End​Ребят, подскажите, можно​
​Range(Cells(n, 1), Cells(nr​ файле удалить пустые​
​Dim str1 As​End If​ формата отображения значений.​ не всегда. Я​
​ 0 Then Rows(r).Delete​ i = LastRow​

​ ждать.​​ печать), тогда эту​ «РАЗРАБОТЧИК»-«Код»-«Макросы»-«SelectLine»-«Выполнить». В результате​
​ можно использовать массив.​ которой начинается удаление​ троеточие (или три​ Step -1 If​ SubКак бы его​

​ ли этот процесс​​ — 1, 1)).EntireRow.Delete​ строки(а точнее строки​
​ String, rng1 As​End Sub​Далее в цикле поочередно​ не утверждаю, что​ End If Next​ To 1 Step​
​Во многих случаях пустые​ строку кода следует​ выделяться все пустые​
​ Ну или формулу​200?’200px’:»+(this.scrollHeight+5)+’px’);»>lr = .Columns(1).Find(«Исполнитель», ,​ точки) располагались не​ Cells(li, 3) =​ так переписать, чтобы​ как то автоматизировать?​d = nr — n​ не совсем пустые,​ Range, rng2 As​Пример третьего VBA-кода:​

planetaexcel.ru

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

​ проверяется каждый столбец​​ вообще не работает,​
​ r End Sub​
​ -1 If Trim$(.Cells(i,​ строки на листе​
​ модифицировать несколько иначе:​ ячейки только для​ протянуть и затем​ , xlPart).Row -​ в начале, а​ «» Then Rows(li).Delete​ он определял последнюю​Заранее благодарен…​Else​ а с заполненными​ Range​Как вставить столбец макросом?​ в диапазоне ячеек​ я утверждаю, что​Казанский​ «H»)) = «»​ представляют собой проблему.​diapaz2.EntireRow.Hidden = True​ пустых строк внутри​ «спецкопипастнуть».​ 3​ в конце.​ Next li End​ заполненную ячейку по​miwgun​d = 0​ некоторыми столбцами)​str1 = ThisWorkbook.Path​ Если мы изменим​ определенным в переменной​ иногда работает неверно.​:​ Then .Rows(i).Delete Shift:=xlUp​ Например, если ваша​Скрыть:​ исходной таблицы.​MrRuslanBB​С неё начинается​Я скопировал содержимое​ Sub​ столбцу G, а​: Ок, спасибо, ща​

​End If​​Пробовал записать макрос​ & Application.PathSeparator​ код в этом​ diapaz1. Если в​KuklP​mailomsk​ Next End With​

​ таблица с данными​​Sub HidLine()​Пример работы первого VBA-кода:​: Сортировки хватило!​ следующий цикл For​ ячейки:​Spaunrus​ потом удалял СТРОКИ​ буду разбираться!!!!​n = nr​

​Sub Макрос4()​​Workbooks.Open Filename:=str1 &​ же месте как​ столбце количество ячеек​: Привет, Саш. Да​, приложите пример файла.​ End Sub​ содержит пустые строки,​Dim i As​Пустые строки, которые находиться​
​KoGG​Напишите​»М/к труб стальных​: А так, все​
​ определяя нужные по​Alex_ST​
​ + 1 -​’​ strName​
​ показано ниже, то​ со значением равно​ не косячнее. Просто​ Если данные критичные,​safed195​ то возникнут сложности​ Long​ под последними заполненными​: Судя по примеру​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>lr = .Columns(1).Find(«Исполнитель»,​

​ бесшовных горячедеформированных…»​​ очень круто!)​ пустым ячейкам столбца​: Дмитрий!​ d​’ Макрос4 Макрос​

​With Workbooks(strName)​​ получиться инструмент для​
​ 0, то целый​ надо учитывать потолок​ замените их на​: KoGG, будьте добры,​ с фильтрацией, сортировкой,​Dim diapaz1 As​
​ ячейками не будут​ формат не нужен.​ , , xlPart).Row​Как можно учесть​
​Спасибо, заработало!)​ C. При этом​Я тут в​Next​

​’​​ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)​ добавления и вставки​:)

​ столбец добавляется к​​ areas range. ~8100+.​ абракадабру. Надо понять,​ а если строки​
​ построением сводных, т.к.​ Range​ выделены. Теперь для​Sub Удаление_пустых_данных() Dim​ — 2​

​ эти точки, если​​Hugo​
​ не выдавая никаких​ теме спрашивал Юрия_М​End Sub​
​’ Сочетание клавиш:​.Save​ строк после пустых:​ несмежному диапазону, определенному​ Но тут-то речь​ что значит «пустые​ в столбце H​ Microsoft Excel считает​Dim diapaz2 As​ удаления выделенных строк​ i&, j&, k&,​получите строку на​

​ они встречаться будут​​: Рядом тему посмотрите:​ запросов?​ про разницу между​miwgun​ Ctrl+ъ​.Close 0​diapaz2.[Insert]​ в переменной diapaz2.​ всего лишь о​ строки» — они​

​ не пустые, а​​ пустую строку разрывом​ Range​
​ пользователю осталось только​

​ A, B, LastCol&​​ одну ниже​

​ в ячейке?​​Kuzmich​Kuzmich​ пустой строкой «»​: 1.Тема диплома отношения​

planetaexcel.ru

Макрос удаления строки, если вторая ячейка строки пустая (Макросы/Sub)

​’​​End With​
​Добавить пустые столбцы макросом:​В конце кода проверяется:​ шапке.​
​ действительно пустые, или​ в них цифра​ таблицы.​Set diapaz1 =​
​ выбрать инструмент: «ГЛАВНАЯ»-«Ячейки»-«Удалить»-«Удалить​ A = ActiveSheet.UsedRange.Value​Yar4i​(все первоначальные условия​: Так все же​: ‘удаление строк при​ и vbNullString, а​ к Excel не​
​Selection.SpecialCells(xlCellTypeBlanks).Select​End Sub​Sub AddColumn()​ если в таблице​

​В данном примере предоставлены​​ в них значение​ 0, то как​

​Обычно для удаления​​ Application.Range(ActiveSheet.Range(«A1»), _​
​ строки с листа».​ ReDim B(1 To​
​: В одиннадцатом сообщении​ такие же ,​ по какой ячейке?​
​ условии пустых ячеек​ он что-то не​ имеет, но связан​Selection.EntireRow.Delete​Нужно, чтобы при​Dim i As​ не найдено ни​ и описаны исходные​
​ "пустая строка", или​

​ макрос меняется?​​ пустых строк включают​​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​
​ Или нажать комбинацию​
​ UBound(A), 1 To​
​ файл с новой​
​ только точки (троеточие​ Столбца С или​ в столбце G​
​ отвечает... Наверное, занят​ он с фондовым​End Sub​
​ копировании листа в​ Long​ одного пустого столбца,​ коды VBA-макросов для​ они скрыты.​chumich​
​ фильтр, отбирают пустые​
​For i =​
​ горячих клавиш CTRL+=.​

​ UBound(A, 2)) LastCol​​ кучкой данных и​ — не понял​ А?​ With Sheets(«Лист1») .Range(«G1:G»​ или пропустил вопрос.​

​ рынком (формирование портфеля),​​При открытии нового​ другую книгу одновременно​Dim diapaz1 As​ тогда выводиться соответственное​ работы с пустыми​
​Dersarius​: If Trim$(.Cells(i, «H»))​ строки вручную и​ 1 To diapaz1.Rows.Count​ А после в​ = UBound(A, 2)​ через FIND не​ пока что это)​

​Yar4i4​​ & .Cells(Rows.Count, «G»).End(xlUp).Row)​
​Может вы просветите?​ специальность финансы и​ файла макрос не​ удалялись пустые строки.​ Range​

​ сообщение. Если же​​ столбцами в таблице​: Эх, нелегкая эта​
​ = 0 Then​ затем их удаляют,​If WorksheetFunction.CountA(diapaz1.Rows(i).EntireRow) =​ появившемся окне «Удаление​ For i =​ выйдет, т.к. мы​ не стационарны в​: Доброе утро.​ _ .SpecialCells(xlCellTypeBlanks).EntireRow.Delete End​ Ну, просто любопытственно​ кредит​ работает…​
​den45444​Dim diapaz2 As​
​ пустые столбцы присутствуют,​ Excel.​
​ штука VBA когда​ .Rows(i).Delete Shift:=xlUp​ что хотя и​ 0 Then​
​ ячеек» выбрать опцию​ 1 To UBound(A)​ не знаем где​ ячейке.​Таблица содержит ненужные​ With​ для образования.​
​2. Треугольник… виноват..​
​Выдает ошибку 1004:Данная​:​

​ Range​​ тогда все они​​У нас иметься таблица​ мало знаешь =((((​

​safed195​​ не сложно, но​
​If diapaz2 Is​ «строку» и нажать​ If A(i, 1)​ заканчиваются данные внизу.​

​Спасибо.​​ пустые строки, которые​Smiley​
​Alex_ST​3. Я изучил​
​ команда не применима​AndreTM​Set diapaz1 =​ одновременно выделяются несмежным​
​ годового бюджета с​Ребят проблема, подскажите​: Спасибо, KoGG и​ занимает некоторое время.​ Nothing Then​ ОК.​ <> «» Then​ В данном случае​Всех мужиков с​ нужно удалить.​: Dim ThisWB as​
​: Блин!​ страницу Приемы.. Этот​
​ для перекрывающихся диапазонов​, Первый вариант. Только​
​ Application.Range(ActiveSheet.Range("A1"), _​ диапазоном с помощью​

​ поквартальными показателями сумм​ пожалуйста с макросом.​

​ chumich! Вы мне​​Для автоматизации подобной задачи​Set diapaz2 =​
​Вначале кода присваиваем для​ k = k​ они заканчиваются 45ой​

​ прошедшим праздником!​​Строки эти начинаются​
​ Workbook Set ThisWB=ThisWorkBook​Никак не привыкну​ код мне не​пример экселевского файла​ в копии.​ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))​ метода для переменной​:D
​ статей расходов:​Есть Лист1 с​ очень помогли!!!!​ проще всего использовать​
​ diapaz1.Rows(i).EntireRow​ переменной diapaz1 диапазон​ + 1 For​ строкой и её-то​RAN​ с (A20) всегда.​
​ Dim li& lLastRow​ к синтаксису управляющих​ подходит, так как​

​ в приложении…​​den45444​For i =​ diapaz2.Select​Каждый квартал разделен между​ данными, нужен макрос​KoGG​

​ простой макрос. Нажмите​​Else​ ячеек в границах​
​ j = 1​ и нужно удалить,​:​ Заканчиваются неизвестно какой​ =ThisWB.Sheets(1).Cells(Rows.Count, «G»).End(xlUp).Row For​ конструкций на этом​ он удаляет ПУСТЫЕ​Я был бы​: Решил задачу попроще.​ 1 To diapaz1.Columns.Count​

​​​ собой пустыми столбцами.​ который удалит не​: Лучше для 0:​
​ Alt+F11 или выберите​Set diapaz2 =​ между A1 и​ To LastCol B(k,​
​ т.к. у неё​200?'200px':''+(this.scrollHeight+5)+'px');">Or .Cells(i, 2).Value Like​ строкой.​
​ li = lLastRow​ движке форума и​
​ строчки, а мне​
​ очень признателен, если​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub удаление_пустых_строк()​If WorksheetFunction.CountA(diapaz1.Columns(i).EntireColumn) =​
​Как удалить пустые столбцы​ Нам необходимо удалить​

​ нужные строчки и​​If .Cells(i, «H»)​ на вкладке​ Application.Union(diapaz2, diapaz1.Rows(i).EntireRow)​ последней используемой ячейкой​ j) = A(i,​ пустые ячейки A45,​ «*…*»​Вторая ячейка строк​ To 1 Step​ «на автомате» написал​ нужно удалять, строчки,​ бы умы форума​Dim firstRow&, lastRow&,​ 0 Then​ макросом? Если нужно​ все пустые столбцы​ пустые.​ = 0 Then​Разработчик​End If​ на рабочем листе​ j) Next j​ B45, C45, D45,​
​Yar4i4​ подлежащих удалению содержит​ -1 If ThisWB.Sheets(1).cells(li,​ ссылку так, как​ в кот некоторые​ сего откликнулись и​ lSt&, lSt1&​
​If diapaz2 Is​ сделать так чтобы​
​ из таблицы. Нет​Пример, Лист1 нужно​ .Rows(i).Delete Shift:=xlUp​
​- Visual Basic​End If​
​ Excel.​
​ End If Next​
​ E45 и т.д.,​
​: Спасибо.​ «…» или пуста.​ 3)=»» Then ThisWB.Sheets(1).Rows(li).Delete​ привык писАть везде,​ столбцы заполненны..​ помогли разобраться…​lSt = Columns(«A:A»).Find(What:=»конец​

​ Nothing Then​​ макрос автоматически не​
​ смысла вручную выделять​ оставить только название​safed195​

excelworld.ru

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

​(Developer — Visual Basic​​Next​
​Примечание. Последняя используемая ячейка​ i ActiveSheet.UsedRange.Value =​​ а вот G45,​Я вписал этот​​ Она имеет границу​
​ Next liТак попробуйте?​​ в квадратных скобках…​​Alex_ST​Alex_ST​
​ таблицы»).Row​Set diapaz2 =​ только выделял, но​ каждый столбец перед​​ улицы, прибор, сер.номер,система​​: А можно еще​
​ Editor)​If diapaz2 Is​

​ на листе -​​ B End Sub​ I45 и L45​ код в строку​ ( в отличие​
​Spaunrus​А исправить нельзя.​: ну так в​: Sub DeleteEmptyRows()​firstRow = 1​ diapaz1.Columns(i).EntireColumn​ и сам удалял​ удалением, ведь это​ (остальное удалить из​ попросить вставку в​. Если вкладки Разработчик​ Nothing Then​ это любая ячейка​
​MrRuslanBB​ содержат нули (они​ с условием «если»​ от ячеек из​: Kuzmich, не совсем​miwgun​ чём проблема-то?​’—————————————————————————————​lastRow = lSt​
​Else​ пустые целые и​ займет много времени​ шапки, что бы​ макрос, чтобы убрал​ не видно, то​MsgBox «Ненайдено ниодной​ для, которой были​

​: Благодарю!​​ всегда содержат цифры,​

​ и заработало.​​ «бороды» (A37-A45 -​ то, нужно он​
​: Если столбец N​Просто замените в​’ Procedure :​ — 1​Set diapaz2 =​ вертикальные диапазоны ячеек​ и сил. К​ не было пустых​ «Объединить и поместить​ можно включить ее​ пустой строки!»​ выполнены любые изменения:​Моментально форматирует файл.​ но какая это​Yar4i​ их удалять нельзя)).​ по столбцу G​ «Число сделок» пустой,​ макросе The_Prist в​ DeleteEmptyRows​Range(«A» & firstRow​

​ Application.Union(diapaz2, diapaz1.Columns(i).EntireColumn)​​ без использования других​
​ тому же случайно​

CyberForum.ru

​ строчек между ними).​

Понравилась статья? Поделить с друзьями:
  • Макросов microsoft word 2010 скачать
  • Макросы excel выделение ячеек цветом
  • Макрос удалить формулы в excel
  • Макроса для скрытия столбцов excel
  • Макросы excel вставить примечание