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

Как удалить все пустые строки и столбцы из таблиц в Word? В этом руководстве показано несколько способов удаления пустых строк и столбцов из таблиц в документе Word.

Вручную удалить все пустые строки и столбцы из таблиц

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

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


Вручную удалить все пустые строки и столбцы из таблиц

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

Шаг 1: Выберите пустую строку или пустой столбец, который вы хотите удалить. Смотрите скриншот:

doc-removerowsandcols-1

Шаг 3: Под Настольные Инструменты, щелкните значок макет вкладка;

doc-removerowsandcols-2

Шаг 4: в Строки и столбцы группу, нажмите Удалить строки или Удалить столбцы.

doc-removerowsandcols-3


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

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

Шаг 1: нажмите «Alt-F11» открыть окно Microsoft Visual Basic для приложений;

Шаг 2: нажмите Модули на Вставить вкладку, скопируйте и вставьте следующий код VBA в окно модуля;

Шаг 3: Затем нажмите Runдок-обратный знак-6 кнопку, чтобы применить VBA.

Код VBA для удаления всех пустых строк и столбцов из таблиц:

Sub DeleteEmptyTablerowsandcolumns ()
Приложение.ScreenUpdating = False
Dim Tbl As Table, cel As Cell, i As Long, n As Long, fEmpty As Boolean
С ActiveDocument
Для каждого тбл в. Таблицах
n = Таблица.Столбцов.Количество
Для i = n To 1 Шаг -1
fПусто = Истина
Для каждой ячейки в Tbl.Columns (i) .Cells
Если Len (cel.Range.Text)> 2, то
fEmpty = Ложь
Выход для
End If
Следующий чел
Если fEmpty = True, то Tbl.Columns (i) .Delete
Затем я
Следующая таблица
Конец с
С ActiveDocument
Для каждого тбл в. Таблицах
n = Tbl.Rows.Count
Для i = n To 1 Шаг -1
fПусто = Истина
Для каждой ячейки In Tbl.Rows (i) .Cells
Если Len (cel.Range.Text)> 2, то
fEmpty = Ложь
Выход для
End If
Следующий чел
Если fEmpty = True, то Tbl.Rows (i) .Delete
Затем я
Следующая таблица
Конец с
Set cel = Nothing: Set Tbl = Nothing.
Application.ScreenUpdating = True
End Sub


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

Kutools for Word предоставляет вам наиболее удобный способ удалить все пустые строки и столбцы из таблиц в документе. Вам просто нужно нажать один раз, и Kutools for Wordс Delete Rows/Columns Утилита быстро удалит все пустые строки и столбцы из всех или выбранных таблиц.

После установки Kutools for Word, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Word Сейчас!)

1. Нажмите Кутулс Плюс > Delete Rows/Columns на Table панель.

doc удалить пустые столбцы строк из таблицы 1

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

Появится диалоговое окно, напоминающее вам, сколько таблиц было обработано, щелкните OK чтобы закрыть, а пустые строки и столбцы были удалены из таблиц.
doc kutools удалить пустые строки 4

Наконечник.Если вы хотите удалить пустые строки с листа Excel, Удалить пустые строки полезности Kutools for Excel могу помочь тебе.


Рекомендуемые инструменты для повышения производительности Word

выстрел kutools word kutools tab 1180x121

выстрел kutools word kutools plus tab 1180x120

Kutools For Word — Более 100 расширенных функций для Word, сэкономьте 50% времени

  • Сложные и повторяющиеся операции можно производить разово за секунды.
  • Вставляйте сразу несколько изображений из папок в документ Word.
  • Объединяйте и объединяйте несколько файлов Word из папок в одну в желаемом порядке.
  • Разделите текущий документ на отдельные документы в соответствии с заголовком, разрывом раздела или другими критериями.
  • Преобразование файлов между Doc и Docx, Docx и PDF, набор инструментов для общих преобразований и выбора и т. Д.

This article shows how to use VBA in MS Word to delete empty rows from a table or rows that have at least one cell that is empty. Say you have multiple tables in a Word document and you want to print the document with only the non-empty rows. Or the tables are to be imported into a database in which the values cannot be blank. These are just some of the scenarios where you will find a practical implementation of this code.

Before we jump into the examples, let us look at two different ways to access a table in a Word document.

1. By using the table index. Below code sets the Tbl variable to the second table in the document.

Set Tbl = ThisDocument.Tables(2)

2. By using the table title. You can set the title by selecting a table in word > Right Click > Table Properties > Alt Text tab

You can loop through all the tables in the document and check for the title to update only those tables that specify a certain condition:

For Each Tbl In ThisDocument.Tables
        If InStr(1, Tbl.Title, "Invoices") = 1 Then
    	'Your code goes here
        End If
Next Tbl

So, the code will be executed for all the tables that have title starting with invoices.

Example 1: Delete rows that are completely blank

For each row, the code checks the length of the row and if it is equal to the length of a blank row, it is deleted.
Note that we start from the bottom-most row and move to the top (because the row index will change if we start deleting from the top).

Set Tbl = ThisDocument.Tables(1)
        With Tbl
            noOfCol = Tbl.Range.Rows(1).Cells.Count
            For i = .Rows.Count To 1 Step -1
                With .Rows(i)
                    If Len(.Range) = noOfCol * 2 + 2 Then .Delete
                End With
            Next i

Here, the “Table.Range” property returns a Range object that represents the portion of a document that is contained within the specified table.

.Rows(1) returns the first row of the table

.Cells returns the cells in the selected row

.Count gives the number of cells in the row (i.e. number of columns in the table)

.Delete deletes a row

A point to be noted here is that the length of each blank cell in the table is 2. And if you have any text in the cell, the length of the cell equals length of the string + 2. For example, if a cell contains text “Word”, length of the cell is 6 (4 + 2)

Also, the length of the end of row character is also 2. So, length of a blank row equals 2* + 2

Example 2: Delete rows that contain at least one cell blank

Here the loop iterates through each cell in the table and if the length is equal to 2 (i.e. the cell is empty), the entire row is deleted. This example and the next one use the Mod operator.

        Set Tbl = ThisDocument.Tables(1)
        With Tbl
            noOfCol = Tbl.Range.Rows(1).Cells.Count
            With .Range
                For i = .Cells.Count To 1 Step -1
                    On Error Resume Next
                    If Len(.Cells(i).Range) = 2 Then
                        .Rows(.Cells(i).RowIndex).Delete
                        j = i Mod noOfCol
                        If j = 0 Then j = noOfCol
                        i = i – j
                    End If
                Next i
        End With

Note that “j” is used here to adjust the value of “i” to the row above the deleted row (to reduce the number of executions of the loop). If your table consists of merged cells, it is better to remove the three lines after the delete row function as it will cause errors in the output.

Consider a table that has three header rows with blanks in them:

The first 3 lines consist of the headers and obviously we do not intend to delete them even if there are blanks present. So, we modify the above code to accommodate for the first three header rows. Here is the entire code:

Sub DeleteEmptyTableRows()
    Application.ScreenUpdating = False
    Dim Tbl As Table
    Dim i As Long
    Dim noOfCol As Integer, j As Integer

    For Each Tbl In ThisDocument.Tables
        With Tbl
            noOfCol = Tbl.Range.Rows(2).Cells.Count

            For i = .Rows.Count To 4 Step -1
                With .Rows(i)
                    If Len(.Range) = noOfCol * 2 + 2 Then .Delete
                End With
            Next i
            With .Range
                For i = .Cells.Count To noOfCol * 3 + 1 Step -1
                    On Error Resume Next
                    If Len(.Cells(i).Range) = 2 Then
                        .Rows(.Cells(i).RowIndex).Delete
                        j = i Mod noOfCol
                        If j = 0 Then j = noOfCol
                        i = i - j
                    End If
                Next i
            End With
        End With
    Next Tbl
    Set Tbl = Nothing
    Application.ScreenUpdating = True
End Sub

Things to note:
– The first row consists of merged cells. So, we have used the second row to get the number of columns in the table
– The first for loop that checks for an entire empty row goes from the last row to row number 4
– For the second for loop that checks each cell, the counter ends at the first cell of the fourth row
– I have used both the for loops just to demonstrate how to take care of headers in both the examples. You can choose which one to use based on your requirement.

After you run the code, the table will look like this:

See also:

  • Deleting rows using Excel VBA

ura-lavrikov

0 / 0 / 0

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

Сообщений: 13

1

Word

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

06.02.2022, 15:21. Показов 1329. Ответов 12

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


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

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

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub DeleteEmptyTablerowsandcolumns()
Application.ScreenUpdating = False
Dim Tbl As Table, cel As Cell, i As Long, n As Long, fEmpty As Boolean
With ActiveDocument
For Each Tbl In .Tables
n = Tbl.Columns.Count
For i = n To 1 Step -1
fEmpty = True
For Each cel In Tbl.Columns(i).Cells
If Len(cel.Range.Text) > 2 Then
fEmpty = False
Exit For
End If
Next cel
If fEmpty = True Then Tbl.Columns(i).Delete
Next i
Next Tbl
End With
With ActiveDocument
For Each Tbl In .Tables
n = Tbl.Rows.Count
For i = n To 1 Step -1
fEmpty = True
For Each cel In Tbl.Rows(i).Cells
If Len(cel.Range.Text) > 2 Then
fEmpty = False
Exit For
End If
Next cel
If fEmpty = True Then Tbl.Rows(i).Delete
Next i
Next Tbl
End With
Set cel = Nothing: Set Tbl = Nothing
Application.ScreenUpdating = True
End Sub

Но он пишет, что «отсутствует доступ к отдельным строкам поскольку таблица имеет ячейки объединенные по вертикали». Также раньше эту операцию выполнял через надстройку Kutools и все работает, но хочется всё автоматизировать наряду с другими задачами. Код тоже взят с их сайта.

Вложения

Тип файла: docx Документ Microsoft Word (3).docx (46.7 Кб, 24 просмотров)



0



малоболт

1143 / 442 / 193

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

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

07.02.2022, 18:22

2

Цитата
Сообщение от ura-lavrikov
Посмотреть сообщение

пишет, что «отсутствует доступ к отдельным строкам поскольку таблица имеет ячейки объединенные по вертикали».

Да. Доступа к отдельным строкам и отдельным столбцам при наличии объединённых ячеек не будет. Но, при этом перебрать ячейки таблицы в порядке возрастания/убывания порядковых номеров (а не адресов!!) можно. И так же можно получить для каждой из перебираемаых ячеек свойства RowIndex и ColumnIndex. Можно проверив в обратном порядке все ячеёки с одинаковым RowIndex определить пуста ли данная строка. Затем, стоя на первой из этих ячеек дать команду для данной ячейки Cells(i).Rows.Delete, которая удалит ряд с данной ячейкой (испортив заодно ширину таблицы). F gjnjv gthtqnb r zxtqrt ii-1 b повторить перебор ячеек с уже новым RowIndex. Соответственно перед тем, как всё это делать надо где-то сохранить массив ширин столбцов и восстановить эти ширины по окончании удаления строк.
И тут возникают вопросы:
1. Во всех ли таблицах можно ориентироваться на ширины ячеек первых 3 строк (считая, что это заголовки таблиц с запасом)?
1.1. Если да — то всегда ли в этих первых 3 строках будет хоть одна строка с необъединёнными по горизонтали ячейками? Или нужна другая логика для определения ширин столбцов?
2. Все ли таблицы в документе должны быть очищены от пустых строк или выборочно по запросу?



0



0 / 0 / 0

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

Сообщений: 13

07.02.2022, 20:52

 [ТС]

3

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

Да. Доступа к отдельным строкам и отдельным столбцам при наличии объединённых ячеек не будет. Но, при этом перебрать ячейки таблицы в порядке возрастания/убывания порядковых номеров (а не адресов!!) можно. И так же можно получить для каждой из перебираемаых ячеек свойства RowIndex и ColumnIndex. Можно проверив в обратном порядке все ячеёки с одинаковым RowIndex определить пуста ли данная строка. Затем, стоя на первой из этих ячеек дать команду для данной ячейки Cells(i).Rows.Delete, которая удалит ряд с данной ячейкой (испортив заодно ширину таблицы). F gjnjv gthtqnb r zxtqrt ii-1 b повторить перебор ячеек с уже новым RowIndex. Соответственно перед тем, как всё это делать надо где-то сохранить массив ширин столбцов и восстановить эти ширины по окончании удаления строк.
И тут возникают вопросы:
1. Во всех ли таблицах можно ориентироваться на ширины ячеек первых 3 строк (считая, что это заголовки таблиц с запасом)?
1.1. Если да — то всегда ли в этих первых 3 строках будет хоть одна строка с необъединёнными по горизонтали ячейками? Или нужна другая логика для определения ширин столбцов?
2. Все ли таблицы в документе должны быть очищены от пустых строк или выборочно по запросу?

1. В файле примера представлены 2 типа таблиц, которые есть в заготовке. И в первой таблице есть строки, которые полностью объединены по горизонтали, НО ширина ячеек в первых 2-х строках будет соответствовать всей таблице.

2. Да, все таблицы разом.

То есть требуется сделать из табл 1 табл2



0



Модератор

Эксперт MS Access

11343 / 4661 / 749

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

Сообщений: 13,512

Записей в блоге: 4

07.02.2022, 22:33

4

ura-lavrikov,
такой лист получить можно, даже програмно

Миниатюры

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



0



0 / 0 / 0

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

Сообщений: 13

07.02.2022, 22:55

 [ТС]

5

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

такой лист получить можно, даже програмно

Такую таблицу не примет преподаватель, а таких заданий требуется решать 100+ шт, поэтому такой вид не подойдет



0



Модератор

Эксперт MS Access

11343 / 4661 / 749

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

Сообщений: 13,512

Записей в блоге: 4

07.02.2022, 23:13

6

Цитата
Сообщение от ura-lavrikov
Посмотреть сообщение

Такую таблицу не примет преподаватель, а таких заданий требуется решать 100+ шт, поэтому такой вид не подойдет

получается 3 макроса, причем весьма сложных
1- перевод объединенных ячеек в простые(как в последнем примере)
2- удаление пустых строк
3- объединение ячеек -самое сложное т.к. создавать всегда сложнее чем ломать



0



Punkt5

малоболт

1143 / 442 / 193

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

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

08.02.2022, 00:03

7

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

Решение

Цитата
Сообщение от ura-lavrikov
Посмотреть сообщение

Такую таблицу не примет преподаватель, а таких заданий требуется решать 100+ шт

Что ж вы сразу не сказали, что это учебное задание. Я б не писал.
Вот вам код. Пробуйте

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub ClearEmptyRowsInTables 'чистилка таблиц
  Dim tb, tCells, ii, rPre, RowIsEmpty
 
  For Each tb In ActiveDocument.Tables 'переберём все таблицы
    Set tCells = tb.Range.Cells ' массив всех ячеек этой таблицы
    rPre = 0: RowIsEmpty = False 'начальные установки: предыдущий Row = 0 и он не пустой
    For ii = tCells.Count To 1 Step -1 'перебираем ячейки в обратном порядке
      If tCells(ii).RowIndex <> rPre Then ' если строка этой ячейки не совпадает со строкой ранее проверенной
        If RowIsEmpty Then 'если ранее проверенная строка пустая
          tCells(ii + 1).Range.Rows.Delete 'удалим её
        End If
        rPre = tCells(ii).RowIndex 'сохраняем строку текущей ячейки как проверяемую
        RowIsEmpty = False 
        If tCells(ii).Range.Text = Chr(160) & Chr(13) & Chr(7) Then RowIsEmpty = True 'проверяем текущую ячейку на пустоту
      Else 'если это та же строка - 
        If RowIsEmpty Then ' и она ещё пустая - проверим текущую ячейку и поменяем признак пустоты строки, если надо
          If tCells(ii).Range.Text <> Chr(160) & Chr(13) & Chr(7) Then RowIsEmpty = False
        End If
      End If
    Next
  Next
End Sub

Добавлено через 2 минуты

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

получается 3 макроса, причем весьма сложных

Есть хитрый выход, как я писал выше

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

дать команду для данной ячейки Cells(i).Rows.Delete

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

Добавлено через 6 минут
Там в коде встречается связка: Chr(160) & Chr(13) & Chr(7) — так выглядят пустые ячейки в ваших примерах. Если в рабочих файлах они выглядят по другому и макрос не будет работать — поробуйте поменять на Chr(13) & Chr(7)



2



0 / 0 / 0

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

Сообщений: 13

08.02.2022, 10:06

 [ТС]

8

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

Вот вам код. Пробуйте

Спасибо огромное, всё работает прекрасно



0



0 / 0 / 0

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

Сообщений: 3

02.11.2022, 14:56

9

добрый день,

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

заранее благодарю



0



Punkt5

малоболт

1143 / 442 / 193

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

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

02.11.2022, 15:17

10

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

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

Подправил, но не проверял. Проверьте.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Explicit
Sub DeleteRowsThatHaveAnyEmptyCellInAllTables() 'чистилка таблиц
  Dim tb, tCells, ii, rPre, RowHaveEmptyCell
 
  For Each tb In ActiveDocument.Tables 'переберём все таблицы
    Set tCells = tb.Range.Cells ' массив всех ячеек этой таблицы
    rPre = 0: RowHaveEmptyCell = False 'начальные установки: предыдущий Row = 0 и он не пустой
    For ii = tCells.Count To 1 Step -1 'перебираем ячейки в обратном порядке
      If tCells(ii).RowIndex <> rPre Then ' если № строки этой ячейки не совпадает с № строки, ранее проверенной
        If RowHaveEmptyCell Then 'если ранее проверенная строка содержит хоть одну пустую ячейку
          tCells(ii + 1).Range.Rows.Delete 'удалим её
        End If
        rPre = tCells(ii).RowIndex 'сохраняем строку текущей ячейки как проверяемую
        RowHaveEmptyCell = False
        If tCells(ii).Range.Text = Chr(160) & Chr(13) & Chr(7) Then RowHaveEmptyCell = True 'проверяем текущую ячейку на пустоту
      Else 'если это та же строка -
        If Not RowHaveEmptyCell Then ' и она ещё помечена как имеющая пустую ячейку - проверим текущую ячейку 
          If tCells(ii).Range.Text = Chr(160) & Chr(13) & Chr(7) Then RowHaveEmptyCell = False 'и поменяем признак наличия пустой
        End If
      End If
    Next
  Next
End Sub



0



0 / 0 / 0

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

Сообщений: 3

02.11.2022, 15:37

11

спасибо за Ваш быстрый ответ!!

работает только если пуста последняя (крайне правая) ячейка и при удалении Chr(160) из кода.
может подскажите, что необходимо менять, для изменения порядка пустых ячеек, чтоб я сам мог варьировать?



0



Punkt5

малоболт

1143 / 442 / 193

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

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

02.11.2022, 15:59

12

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

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

В 18 строке у меня ошибка. Из-за неё удалялась строка только если последняя ячейка пустая. Поменяйте на

Visual Basic
18
If tCells(ii).Range.Text = Chr(160) & Chr(13) & Chr(7) Then RowHaveEmptyCell = True

Про Chr(160) — я уже писал выше — это неразрывный пробел, который был в пустых ячейках у ТС. Если у вас там совсем пусто — просто уберите Chr(160) из 15 и 18 строк. Если в пустых ячейках у вас какой-то другой невидимый знак — добавьте его в 15 и 18 строке к Chr(13) & Chr(7).



0



0 / 0 / 0

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

Сообщений: 3

02.11.2022, 16:07

13

Спасибо огромное всё работает.
Это гениально!!



0



I been struggling with a word macro that deletes Empty lines where a «$» exists. The code below works but only for the selected table, how can I have the code loop through the entire document and delete empty lines from all pages.

Document

Option Explicit

Sub TEST()
Dim i       As Long
    With Selection.Tables(1)
        For i = .Rows.Count To 1 Step -1
            If Len(.Cell(i, 2).Range.Text) = 3 And Left(.Cell(i, 2).Range.Text, 1) = "$" Then
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub

M--'s user avatar

M—

24.4k7 gold badges58 silver badges92 bronze badges

asked Apr 14, 2017 at 15:00

user7675421's user avatar

2

This is not tested on the same data-set as OP has since it is not provided.

Option Explicit

Sub TEST() 


Dim tbl As Table
Dim mDoc As Document
Dim oRow As Row

Set mDoc = ActiveDocument


    For Each tbl in mDoc.Tables

        For Each oRow In tbl.Rows

                 If Len(oRow.Cells(2).Range.Text) = 3 And _
                    Left(oRow.Cells(2).Range.Text, 1) = "$" Then 

                        oRow.Delete 

                 End If 
              Next oRow 
    Next tbl

End Sub

answered Apr 14, 2017 at 15:09

M--'s user avatar

M—M—

24.4k7 gold badges58 silver badges92 bronze badges

10

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

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

  • Удалить вручную строку или столбец
  • Удалить с помощью скрипта VBA все пустые строки и столбцы
  • 1 Удалить вручную строку или столбец
  • 2 Удалить с помощью скрипта VBA все пустые строки и столбцы

Удалить вручную строку или столбец

Данный метод проверялся в Word 2007, 2010, 2013.

Шаг 1.

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

Шаг 2.

В ленте в разделе «Работа с таблицами» откройте вкладку «Макет».

Шаг 3.

В разделе «Строки и столбцы» найдите кнопку «Удаление», и в выпадающем списке выберите нужное вам действие.

В Word 2010-2013 в выплывающем окне есть этот же список по удалению столбцов и строк из таблицы.

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

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

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

Данный метод проверялся в Word 2007, 2010, 2013

Как пользоваться скриптами VBA в Word читайте здесь >>>

Скопируйте этот скрипт и запустите его выполнение.

Sub DeleteEmptyTablerowsandcolumns()Application.ScreenUpdating = FalseDim Tbl As Table, cel As Cell, i As Long, n As Long, fEmpty As BooleanWith ActiveDocumentFor Each Tbl In .Tablesn = Tbl.Columns.CountFor i = n To 1 Step −1fEmpty = TrueFor Each cel In Tbl.Columns(i).CellsIf Len(cel.Range.Text) > 2 ThenfEmpty = FalseExit ForEnd IfNext celIf fEmpty = True Then Tbl.Columns(i).DeleteNext iNext TblEnd WithWith ActiveDocumentFor Each Tbl In .Tablesn = Tbl.Rows.CountFor i = n To 1 Step −1fEmpty = TrueFor Each cel In Tbl.Rows(i).CellsIf Len(cel.Range.Text) > 2 ThenfEmpty = FalseExit ForEnd IfNext celIf fEmpty = True Then Tbl.Rows(i).DeleteNext iNext TblEnd WithSet cel = Nothing: Set Tbl = NothingApplication.ScreenUpdating = TrueEnd Sub

Понравилась статья? Поделить с друзьями:
  • Удалить пустые строки в документе excel
  • Удалить пустые строки excel python
  • Удалить пустые символы в excel
  • Удалить пустые пробелы в excel
  • Удалить пустую строку в таблице word