Макрос word удаление пустых строк таблицы
В документе, загруженном из Интернета, слишком много пустых строк (перенос строк вручную). Чтобы сэкономить бумагу и место, нам нужно удалить все пустые строки. Есть ли более простой способ удалить все пустые строки вместо того, чтобы удалять каждую вручную? В этом руководстве будут перечислены три доступных метода для удаления всех пустых строк в целом или для выбора документов:
Удалите все пустые строки с помощью параметра Найти и заменить
Освободи Себя Найти и заменить функция в Word обычно используется для удаления всех пустых строк, но вы должны знать, что пустые строки называются Ручной перенос строки в Найдите то, что опцию.
1. Нажмите Заменять на Главная таб. Смотрите скриншот:
2. Когда Найти и заменить появится диалоговое окно, нажмите Подробнее >> кнопку, чтобы отобразить дополнительные параметры. Затем поместите курсор в Найдите то, что поле и выберите Ручной разрыв строки из Особый выпадающее меню, см. снимок экрана:
3. Там будет " ^l ”Персонаж в Найдите то, что поле и нажмите Заменить все. Все ручные разрывы строк были удалены сразу, см. Снимок экрана:
Удалите все пустые строки с помощью VBA
В качестве альтернативы вы можете использовать макрос для удаления всех пустых строк, если вы хорошо разбираетесь в коде VBA, и вы можете следовать приведенным ниже инструкциям, например:
1, Нажмите Alt + F11 для открытия Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модуль, а затем скопируйте приведенный ниже код VBA в окно модуля.
Код VBA: удаление всех ручных разрывов строк в документе:
3. Затем нажмите Запустить Sub кнопку для запуска кода, все ручные разрывы строк будут удалены.
Удалите все пустые строки с помощью kutools for Word
Вышеупомянутые методы требуют нескольких шагов для удаления всех пустых строк, но с Kutools for Word, только один щелчок мыши поможет вам завершить эту операцию.
1. Пожалуйста, примените эту утилиту, нажав Kutools > Пустые параграфы > Удалить пустые разрывы строк вручную. Смотрите скриншот:
2. Затем появится диалоговое окно с напоминанием об удалении всех пустых строк, нажмите Да кнопку, см. снимок экрана:
3. После нажатия Да, вы можете видеть, что все пустые строки удалены из документа. Смотрите скриншот:
Внимание: Если вам просто нужно удалить пустые строки в выделении, вы должны выбрать диапазон перед применением этой функции.
Демонстрация: удаление всех пустых строк в Word
Kutools for Word: с более чем 100 удобными надстройками Word, которые можно попробовать бесплатно без ограничений в течение 60 дней. Загрузите и бесплатную пробную версию прямо сейчас!
Пустые строки и столбцы могут быть головной болью в таблицах во многих случаях. Стандартные функции сортировки, фильтрации, подведения итогов, создания сводных таблиц и т.д. воспринимают пустые строки и столбцы как разрыв таблицы, не подхватывая данные, расположенные за ними далее. Если таких разрывов много, то удалять их вручную может оказаться весьма затратно, а удалить сразу всех "оптом", используя фильтрацию не получится, т.к. фильтр тоже будет «спотыкаться» на разрывах.
Давайте рассмотрим несколько способов решения этой задачи.
Способ 1. Поиск пустых ячеек
Это, может, и не самый удобный, но точно самый простой способ вполне достойный упоминания.
Предположим, что мы имеем дело вот с такой таблицей, содержащей внутри множество пустых строк и столбцов (для наглядности выделены цветом):
Допустим, мы уверены, что в первом столбце нашей таблицы (колонка B) всегда обязательно присутствует название какого-либо города. Тогда пустые ячейки в этой колонке будут признаком ненужных пустых строк. Чтобы быстро их все удалить делаем следующее:
- Выделяем диапазон с городами (B2:B26)
- Нажимаем клавишу F5 и затем кнопку Выделить (Go to Special) или выбираем на вкладке Главная - Найти и выделить - Выделить группу ячеек (Home - Find&Select - Go to special) .
- В открывшемся окне выбираем опцию Пустые ячейки (Blanks) и жмём ОК – должны выделиться все пустые ячейки в первом столбце нашей таблицы.
- Теперь выбираем на вкладке Главная команду Удалить - Удалить строки с листа (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 и в появившийся пустой модуль скопируйте и вставьте следующие строки:
Закройте редактор и вернитесь в Excel.
Теперь нажмите сочетание Alt + F8 или кнопку Макросы на вкладке Разработчик. В открывшемся окне будут перечислены все доступные вам в данный момент для запуска макросы, в том числе только что созданный макрос DeleteEmpty. Выберите его и нажмите кнопку Выполнить (Run) - все пустые строки и столбцы на листе будут мгновенно удалены.
Способ 4. Запрос Power Query
Ещё один способ решить нашу задачу и весьма частый сценарий - это удаление пустых строк и столбцов в Power Query.
Сначала давайте загрузим нашу таблицу в редактор запросов Power Query. Можно конвертировать её в динамическую "умную" сочетанием клавиш Ctrl+T или же просто выделить наш диапазон данных и дать ему имя (например Данные) в строке формул, преобразовав в именованный:
Теперь используем команду Данные - Получить данные - Из таблицы/диапазона (Data - Get Data - From table/range) и грузим всё в Power Query:
Дальше всё просто:
- Удаляем пустые строки командой Главная - Сократить строки - Удалить строки - Удалить пустые строки (Home - Remove Rows - Remove empty rows).
- Щёлкаем правой кнопкой мыши по заголовку первого столбца Город и выбираем в контекстном меню команду Отменить свёртывание других столбцов (Unpivot Other Columns). Наша таблица будет, как это технически правильно называется, нормализована - преобразована в три столбца: город, месяц и значение с пересечения города и месяца из исходной таблицы. Особенность этой операции в Power Query в том, что она пропускает в исходных данных пустые ячейки, что нам и требуется:
Практически каждый в наше время работает с компьютером в той или иной степени. И самой популярной программой и самой востребованной, является текстовый редактор. Бесспорно, большинство работают с редактором Microsoft Office Word. Часто при копировании текста из интернета и последующей вставкой возникает большое количество пустых абзацев. И удалять их вручную довольно длинное дело. Давайте ускорим работу до нескольких кликов мышкой.
Способ 1. На всякий случай рассмотрим, как удалить пустые строки вручную. Для примера я взял несколько абзацев из Википедии.
Порядок действий:
1. Ставим курсор перед первой буквой текста или после последней (это важно для правильной работы).
2. Нажимаем на кнопку «Заменить», которая находится на «Главная».
3. В поле «Найти» пишем ^0013 . У поле «Заменить на» пишем ^p.
4. Остается нажать на кнопку «Заменить все».
Скриншот результата работы:
Способ 2 (рекомендуется). Данный способ предусматривает добавление макроса и последующее его использование.
Порядок действий:
1. Копируем макрос:
2. Идем в «Вид → Макросы → Макросы».
3. Даем имя макросу (любое, без пробелов) и нажимаем «Создать».
4. Откроется окно визуального редактора Microsoft Visual Basic. Там уже будет текст с именем вашего макроса (у меня на скриншоте видно, что имя макроса delVoidParagraphs):
5. Удаляем данный код и заменяем на скопированный ранее.
6. Идем у «Вид → Макросы → Макросы», находим наш добавленный (delVoidParagraphs) и нажимаем «Выполнить». После окончания работы макроса все пустые строки будут заменены
Примеры протестированы на Windows 7 и текстовом редакторе Microsoft Office Word 2016.
Пример будет показан на версии Microsoft Office Word 2016.
Способ 1. Без использования макросов.
Воспользуемся простым поиском и заменой, то есть, инструментами редактора Word.
На главной странице находим кнопку «Заменить» и нажимаем на нее.
Напротив «Найти» вводим в поле два пробела.
Напротив «Заменить» вводим в поле один пробел.
После этого нажимаем на кнопку «Заменить все».
Это довольно простое действие для замены лишних пробелов, но в случае если пробел стоит перед запятой, точкой или другим знаком препинания – нужно выполнить другой способ замены.
Для этого (на примере запятой):
На главной странице находим кнопку «Заменить» и нажимаем на нее.
Напротив «Найти» вводим в поле пробел и тогда кому.
Напротив «Заменить» вводим в поле только кому.
После этого нажимаем на кнопку «Заменить все».
Способ 2. Использование макросов.
Для простого удаления лишних пробелов между словами и знаками препинания, а также перед знаками препинания, нужно использовать два макроса.
Берем два кода, что ниже и копируем в буфер обмена:
Sub DeleteSpace()
Selection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveRight Unit:=wdCharacter, Count:=1
End Sub
Sub DelSpacePunktMark()
Selection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " ([. ;\!\?])"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveLeft Unit:=wdCharacter, Count:=1
End Sub
Открываем «Макросы», перейдя на вкладкку «Вид», и нажав на соответствующую кнопку. Если у вас есть установленные или записанные макросы, то можно выделить любой из них и нажать на кнопку «Изменить». Если макросов нет, то в поле «Имя» пишем любое имя без пробелов. Также имя макроса не может состоять только из одних цифр. Дали для макроса имя, теперь можно нажать на кнопку «Создать».
Примечание. Для быстрого запуска визуального редактора Microsoft Visual Basic (именно в нем происходит редактирование макросов) нужно нажать сочетание клавиш Alt+F11.
Откроется окно визуального редактора для добавления макроса. Просто после горизонтальной линии вставляем два наших кода, которые перед этим скопировали. Если вы создавали имя макроса, то можете удалить его и заменить нашими готовыми макросами (чтобы не было пустых макросов при выборе). Во всяком случае код нужно вставить после End Sub.
Сохраняем наши изменения.
Нажимаем опять на кнопку «Макросы», выбираем из списка только что добавленные и нажимаем «Выполнить».
Для удаления пробелов используем макрос с именем (его можно изменить) DeleteSpace, а для пробелов перед знаками препинания DelSpacePunktMark.
После данных действий ваш текст будет иметь нужный вид.
Читайте также: