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

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

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

К сожалению, со столбцами такой трюк уже не проделать – фильтровать по столбцам 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) таблицы

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

Результат

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

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

Удаление пустых строк в таблице (Microsoft Office Word)

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

Sub DeleteEmptyRows() On Error Resume Next Dim oSelRng As Range 'Область из которой обрабатывать таблицы Dim oTbl As Table 'Текущая таблица Dim oCell As Cell 'Ячейка в таблице Dim oRowRng As Range 'Диапазон для строки Dim iStart As Long 'Начало первой пустой ячейки в строке Dim iEnd As Long 'Конец последней пустой ячейки в строке Dim i As Long 'Счетчик строк в таблице Dim j As Long 'Счетчик таблиц Dim sEmptyString As String 'Служебная строка Set oSelRng = Selection.Range 'Запоминаем диапазон выделения 'Перебираем таблицы в выделении, начиная с конца For j = oSelRng.Tables.Count To 1 Step -1 Set oTbl = oSelRng.Tables(j) 'Запоминаем таблицу 'Перебираем ячейки в первом столбце For i = oTbl.Rows.Count To 1 Step -1 If Len(oTbl.Cell(i, 1).Range.Text) = 2 Then 'Если ячейка пустая, т.е. содержит только конец абзаца и конец ячейки If Err.Number <> 5941 Then 'Если такая ячейка существует Set oCell = oTbl.Cell(i, 1) 'Запоминаем первую ячейку в строке If Not oCell Is Nothing Then 'Если ячейка запомниалась iStart = oCell.Range.Start 'Запоминаем ее начало Do While Len(oCell.Next.Range.Text) = 2 'Теперь ищем последнюю пустую ячейку в этой же строке iEnd = oCell.Next.Range.End 'Запоминаем ее конец Set oCell = oCell.Next Loop Set oRowRng = oSelRange.Document.Range(iStart, iEnd) 'Запоминаем диапазон от начала первой пустой ячейки до конца последней 'Удаляем из строки знаки абзаца и конца ячейки sEmptyString = Replace(oRowRng.Text, ChrW(13) & ChrW(7), "") If Len(sEmptyString) = 0 Then 'Если строка пустая, oRowRng.Cells.Delete ' то ячейки удаляем End If End If Else: Err.Clear 'очищаем ошибку End If End If Next i Next j End Sub

Похожие статьи

  • Вставить текст в определенную строку ячейки таблицы в ворде
  • Извлечь фотографии из doc (docx) файла
  • Экспорт в Word из Memo
  • Скопировать данные из Edit в Word
  • Как из delphi вставить символ в word?
  • Словарь словоформ русского языка
  • Запуск макроса в открытом на данный момент Word
  • Как макросом брать данные с word документов в excel?
  • Как экспортировать таблицу ehlib в word?
  • Добавить данные из DBgrid в Ms Word

Удалить строки в таблице с пустой ячейкой

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

2 Ответ от aap77 04.07.2012 11:40:09

Re: Удалить строки в таблице с пустой ячейкой
Public Sub DeleteCells() Dim Doc As Document Dim Table As Table Set Doc = ActiveDocument For Each Table In Doc.Tables Table.Range.Select Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "[^0013]" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Next Table End Sub

3 Ответ от Lohmatiy 04.07.2012 12:35:40

Re: Удалить строки в таблице с пустой ячейкой

неа, не работает. Удаляет пробелы кое-где, и все

4 Ответ от aap77 04.07.2012 12:51:28

Re: Удалить строки в таблице с пустой ячейкой

Все работает, в этом макросе вообще нет ссылок на пробелы, вышлите таблицу

5 Ответ от aap77 04.07.2012 12:59:54

Re: Удалить строки в таблице с пустой ячейкой

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

6 Ответ от Lohmatiy 04.07.2012 13:27:25

Re: Удалить строки в таблице с пустой ячейкой

В строке могут быть как пустые, так и не пустые ячейки. Нас интересует только 6 ячейка каждой строки. Если в ней пусто, удалить всю строку.

Post’s attachments

1111.doc 61 Кб, 8 скачиваний с 2012-07-04

You don’t have the permssions to download the attachments of this post.

7 Ответ от aap77 04.07.2012 16:41:07

Re: Удалить строки в таблице с пустой ячейкой

Вот теперь понятно сделаем

8 Ответ от aap77 04.07.2012 18:37:35

Re: Удалить строки в таблице с пустой ячейкой

Вот попробуйте макрос по Вашим условиям

Public Sub DeleteCells() Dim Doc As Document Dim Table As Table Dim Rw As Row Dim Cell As Cell Set Doc = ActiveDocument For Each Table In Doc.Tables Table.Range.Select Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "[^0013]" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll For Each Rw In Table.Rows i = 0 For Each Cell In Rw.Cells i = i + 1 If Cell.Range.Characters.Count = 1 And i = 6 Then Rw.Delete End If Next Cell Next Rw Next Table End Sub

9 Ответ от Lohmatiy 04.07.2012 21:48:19

Re: Удалить строки в таблице с пустой ячейкой

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

10 Ответ от aap77 04.07.2012 22:31:07

Re: Удалить строки в таблице с пустой ячейкой

А на работу взять слабо? Я Вам весь производственный процесс обеспечу?

Сообщений [ 10 ]

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Похожие темы

  • Задать значение «Пустой строки»
  • Удалить строки, где имеются повторяющиеся символы
  • Высота строки в таблице
  • Как отключить в таблице функцию добавления строки
  • Как отвязать строки столбцов в таблице друг от друга?
  • Не отображается нижняя граница каждой строки в таблице
  • определение номера строки в таблице и подстановка в адрес ячейки
  • Word как удалить текст в файле, закрыть и удалить макросом файл?

Удалить строки в таблице с пустой ячейкой

В современном мире необходимо постоянно совершенствовать свои знания, чтобы идти вперед. Это касается буквально всего, даже такой, казалось бы, простой и понятной операции, как работа с текстом. На портале о Microsoft Office Word вы узнаете про: word 2007 вставить как.

Microsoft Word предоставляет практически неограниченные возможности для самосовершенствования, нужно только ими правильно воспользоваться. На портале о Microsoft Office Word вы узнаете про: как вставить таблицу из ворда в эксель. На форуме Ворд Эксперт как раз и обсуждаются пути оптимизации работы, посредством написания различных шаблонов и макросов для редактирования или форматирования, построения таблиц, списков стилей. Наш сайт о Microsoft Office Word даст ответ про: для чего нужны непечатаемые знаки» в текстовом процессоре ms word.

Здесь вам подскажут оптимальные настройки программы в зависимости от стоящей задачи и помогут разобраться с тонкостями и отличиями различных версий. На портале о Microsoft Office Word вы узнаете про: ворд 2007 не печатает формулы. Для ленивых или очень занятых пользователей существуют готовые решения и возможность оставить заявку. Наш сайт о Microsoft Office Word даст ответ про: 1,25 см это сколько в ворде 2010.

страницы

  • полезности word
  • книги и программы
  • о проекте
  • стать автором
  • реклама на сайте
  • правовая информация

авторство

© 2006 — 2016, Word Expert
Авторские права на все материалы, опубликованные на сайте WordExpert.ru (включая текст, иллюстрации, фотографии, подборку, расположение и т.п.), принадлежат администрации Word Expert, если не указано иное.

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

word

Практически каждый в наше время работает с компьютером в той или иной степени. И самой популярной программой и самой востребованной, является текстовый редактор. Бесспорно, большинство работают с редактором Microsoft Office Word. Часто при копировании текста из интернета и последующей вставкой возникает большое количество пустых абзацев. И удалять их вручную довольно длинное дело. Давайте ускорим работу до нескольких кликов мышкой.

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

delVoidParagraphs

Порядок действий:

1. Ставим курсор перед первой буквой текста или после последней (это важно для правильной работы).

2. Нажимаем на кнопку «Заменить», которая находится на «Главная».

word

3. В поле «Найти» пишем ^0013 . У поле «Заменить на» пишем ^p.

delVoidParagraphs

4. Остается нажать на кнопку «Заменить все».

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

word

Скриншот результата работы:

Способ 2 (рекомендуется). Данный способ предусматривает добавление макроса и последующее его использование.

Порядок действий:

1. Копируем макрос:

Sub delVoidParagraphs()
‘Удаление пустых абзацев в выделенном фрагменте
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = «^0013»
.Replacement.Text = «^p»
.MatchWildcards = True
.Format = False
.Forward = True
If Selection.Type = wdSelectionIP Then
.Wrap = wdFindContinue
Else
.Wrap = wdFindStop
End If
.Execute Replace:=wdReplaceAll
End With
Selection.Collapse direction:=wdCollapseStart
End Sub

2. Идем в «Вид → Макросы → Макросы».

delVoidParagraphs

word

3. Даем имя макросу (любое, без пробелов) и нажимаем «Создать».

word

4. Откроется окно визуального редактора Microsoft Visual Basic. Там уже будет текст с именем вашего макроса (у меня на скриншоте видно, что имя макроса delVoidParagraphs):

Sub delVoidParagraphs()

‘ delVoidParagraphs Макрос

delVoidParagraphs

5. Удаляем данный код и заменяем на скопированный ранее.

delVoidParagraphs

6. Идем у «Вид → Макросы → Макросы», находим наш добавленный (delVoidParagraphs) и нажимаем «Выполнить». После окончания работы макроса все пустые строки будут заменены

delVoidParagraphs

Примеры протестированы на Windows 7 и текстовом редакторе Microsoft Office Word 2016.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *