Vba удаление таблицы word

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

Word 2003

Для удаления выделенной таблицы в Word 2003 необходимо зайти в меню Таблица и выполнить команду Удалить/Таблицу.

Word 2007 и Word 2010

Чтобы удалить таблицу в Word 2007 или Word 2010 нужно перейти на вкладку «Макет», в группе кнопок «Строки и столбцы» открыть меню кнопки «Удалить» и выбрать из списка команду «Удалить таблицу».

Word 2013

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

Word 2016

В Word 2016 таблица удаляется аналогично Wor2013.

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

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

Sub AllTablesDelete()
'Удаление всех таблиц в активном документе
    For Each Tbl In ActiveDocument.Tables
        Tbl.Delete
    Next Tbl
End Sub

Удаление таблиц в выделенной области документа Word

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

Sub TablesDelete()
'Удаление таблиц в выделенной области активного документа
    For Each Tbl In Selection.Tables
        Tbl.Delete
    Next Tbl
End Sub

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

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

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

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

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

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

Kutools for Word: мощная надстройка содержит более 100 инструментов и может повысить эффективность ежедневной работы Word на 80%! Получи это сейчас!


Удалить таблицу вручную в Word

Фактически, вы можете удалить таблицу вручную в Word. Пожалуйста, сделайте следующее:

Этот метод будет удалять по одной таблице за раз. Если вам нужно удалить все таблицы сразу, перейдите по ссылке ниже VBA or Кутулс.

В Word поместите курсор в указанную таблицу, чтобы активировать ее, затем щелкните крестик в левом верхнем углу таблицы, чтобы выбрать всю таблицу, а затем выберите Удалить > Удалить таблицу удалить его. Смотрите скриншот:

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


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

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

1: Нажмите Alt + F11 для открытия Microsoft Visual Basic для приложений окно;

2: Нажмите Вставить> Модульи вставьте ниже код VBA в Модули окно;

VBA: удалить все таблицы из текущего документа Word

Sub Removetables ()
Dim oTable As Table
For Each oTable In ActiveDocument.Tables
oTable.Delete
Next oTable
End Sub

3: Нажмите Run  или нажмите F5 ключ для применения VBA.


Удалить все таблицы с Kutools for Word

Некоторые пользователи могут быть не знакомы с кодом VBA. Не принимайте это близко к сердцу! Kutools for Word‘s Удалить таблицы Утилита поможет вам удалить все таблицы из определенного выделения или всего документа сразу одним щелчком мыши!

Kutools for Word: мощная надстройка содержит более 100 инструментов и может повысить эффективность ежедневной работы Word на 80%! Получи это сейчас!

Просто нажмите Кутулс > Удалить > Удалить таблицы, и все таблицы будут немедленно удалены из текущего документа Word.

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


Относительные статьи:

  • Удалить пустые строки и столбцы из таблицы в Word
  • Удалить все пустые абзацы в Word
  • Удалить пустые строки в Word
  • Удалить все гиперссылки в Word


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

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

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

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

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

Комментарии (7)


Оценок пока нет. Оцените первым!

I need to run text-check program on my doc (Grammarly), and I need to remove all the tables.

How can I do it?

I find https://www.extendoffice.com/documents/word/1208-word-remove-delete-all-tables.html , in which you could use VBA

Sub Removetables ()
Dim oTable As Table
Each oTable In ActiveDocument.Tables
oTable.Delete
Next oTable
End Sub

but Each oTable In ActiveDocument.Tables gives me error when I run it. I’m on MS Word 2013 on Mac

Raystafarian's user avatar

Raystafarian

21.5k11 gold badges60 silver badges90 bronze badges

asked May 23, 2016 at 6:29

ZK Zhao's user avatar

1

You’re missing the For in For Each:

Sub Removetables ()
    Dim oTable As Table
    For Each oTable In ActiveDocument.Tables
    oTable.Delete
    Next oTable
End Sub

answered May 23, 2016 at 6:38

Atzmon's user avatar

AtzmonAtzmon

3,0911 gold badge15 silver badges22 bronze badges

4

0 / 0 / 0

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

Сообщений: 11

1

Word

23.03.2018, 11:30. Показов 4453. Ответов 6


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

Добрый день.
Есть файл спецификации в Word, который состоит из отдельных таблиц (во вложении).
Значения в этих таблицах подтягиваются из файла Excel с помощью связей.
Пытаюсь найти какой-нибудь способ, как можно автоматизировать удаление тех таблиц, значения в которых равны 0 после обновления полей.
Подскажите пожалуйста, можно ли это реализовать с помощью макроса, и если да, то как (хотя бы примерно)?
Заранее спасибо!



0



Модератор

Эксперт MS Access

11341 / 4660 / 748

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

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

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

23.03.2018, 11:49

2

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

Установка шкафа АСКУЭ в МТП №2.
Вариант 7.5 (39.2462.113.08) 0 шт.

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

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

Значения в этих таблицах подтягиваются из файла Excel с помощью связей.

а где эти связи —не смогла найти

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

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

Подскажите пожалуйста, можно ли это реализовать с помощью макроса, и если да, то как (хотя бы примерно)?
Заранее спасибо!

я бы видимо в екселе
—проходила по таблицам
—нужные записывала бы в НТМ-файл, который бы уже открывала вордом

ворд вам видимо нужен, что-бы напечатать штампы



0



0 / 0 / 0

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

Сообщений: 11

23.03.2018, 12:04

 [ТС]

3

shanemac51,

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

ворд вам видимо нужен, что-бы напечатать штампы

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

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

а где эти связи —не смогла найти

Связи я удалил, хотел просто понять как можно управлять контентом в самом ворд-файле.
Если я правильно понял, то наиболее оптимально — это формировать эти таблицы в excel, а после выгружать в некий htm-файл, который будет иметь такую же разметку, что и ворд (то есть при открытие его в ворд, разницы не будет никакой)?



0



Казанский

15136 / 6410 / 1730

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

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

23.03.2018, 13:49

4

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

Решение

fluffandstuff, так?

Visual Basic
1
2
3
4
5
6
7
Sub DelTabl()
Dim t As Table, s$
  For Each t In ActiveDocument.Tables
    s = t.Cell(3, 5).Range.Text
    If Left$(s, Len(s) - 2) = "0" Then t.Delete
  Next
End Sub



1



0 / 0 / 0

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

Сообщений: 11

23.03.2018, 15:39

 [ТС]

5

Казанский, все работает как нужно! Спасибо большое!
Подскажите, пожалуйста, а есть ли какая то возможность удалять вместе с таблицой и текст, который следует за ней?



0



Модератор

Эксперт MS Access

11341 / 4660 / 748

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

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

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

23.03.2018, 16:50

6

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

удалять вместе с таблицей и текст, который следует за ней?

поэтому я и советовала формировать НТМ из екселя, в ворде может много тараканов вылезти, начиная с того: начинать очередную таблицу с новой страницы или на текущей, сколько подписей, отрывать ли подписи от основного текста, в ворде неуверенно себя чувствуют таблицы длиннее 20-30 страниц



0



Казанский

15136 / 6410 / 1730

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

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

23.03.2018, 17:04

7

fluffandstuff,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub DelTabl()
Dim i&, n&
  With ActiveDocument
    For i = .Tables.Count To 1 Step -1
      If Val(.Tables(i).Cell(3, 5).Range.Text) = 0 Then
        If i < .Tables.Count Then n = .Tables(i + 1).Range.Start - 1 Else n = .Range.End
        .Range(.Tables(i).Range.Start, n).Delete
      End If
    Next
  End With
End Sub



0



Automatically Delete Tables in Microsoft Word using Excel VBA

Aug 05, 2017 in Excel

There are some cases that we want to delete tables in multiple Microsoft Word files but doing this manually takes time and even troublesome especially if we have a large number of files. Good thing is that we can automatically remove all the tables in Microsoft Word through VBA macro program that we could simply run and get the result immediately in just few seconds.

Let’s take a scenario where we have a business that we need to prepare and send several invoice to the customers on a regular basis and we want to create a separate report for the summary. Assuming that we have an invoice format similar to the image shown below and we just want to get the information (highlighted in red) and remove all the succeeding tables and other related details. If we do this manually, we need to go open the Microsoft Word document, select each table and hit delete key. Can you imagine how much time do you need to waste if you have more than 10 tables on each document?

The sample layout below contains the summary information and the tables with the item breakdown information. We will be using this as a sample document.

Finally, our goal is to have the following information to be used as a summary report. We would like to have this summary layout in all of the invoices that we have generated in the past transactions. However, creating a new document and re-typing this information will take too much time and that we have decided to use all the generated invoices in Microsoft Word by just removing the tables along with the item detail information. Sample end result shown in below image.

Sample summary report:

Definitely, we can achieve this by creating a simple VBA macro program code. The procedure below will walk you through the coding process and the preparation that needs to be done prior to executing the macro program.

1. Gather all the Microsoft Word documents with tables that we want to remove and store into a specific directory location in your local drive. Make sure that there is no document left opened on this folder when executing the code to avoid getting unexpected runtime error.

2. Writing the VBA macro code

Sub DeleteTable()

Dim FSystem, strFolder, strFiles, MSWordApp
Dim pathLocation As String
Dim wordTbl As Table

Set FSystem = CreateObject("Scripting.FileSystemObject")

pathLocation = "C:Invoice"

Set strFiles = FSystem.GetFolder(pathLocation).Files

Set MSWordApp = CreateObject("word.Application")
For Each File In strFiles
MSWordApp.Documents.Open (File.Path)

For Each wordTbl In MSWordApp.ActiveDocument.tables

wordTbl.Delete

Next

MSWordApp.ActiveDocument.Save
MSWordApp.ActiveDocument.Close

Next

End Sub

2.1 Create an instance of the FileSystemObject.

Set FSystem = CreateObject("Scripting.FileSystemObject")

Related to “Find and List All Files and Folders in a Directory”.

2.2 Create/ define a variable and store the path location where the Microsoft Word documents are located. This will be used as a source folder when retrieving all the target files.

pathLocation = "C:Invoice"

Set strFiles = FSystem.GetFolder(pathLocation).Files

2.3 Make a loop to read all the files in the specified folder location. The program will get and open each file from the source folder. Refer to line # 1 and 13 for the “For Loop” statement. Basically, it will go through the files one at a time and open it in the background (See Line# 2) as if you are opening a file on Microsoft Word Application. Make sure that you close the document instance for every round of loop to avoid leaving the file actively opened in the background (See Line # 10 and 11).

For Each File In strFiles
MSWordApp.Documents.Open (File.Path)

For Each wordTbl In MSWordApp.ActiveDocument.tables

wordTbl.Delete

Next

MSWordApp.ActiveDocument.Save
MSWordApp.ActiveDocument.Close

Next

2.4 Make another loop to check the existence of all the tables inside the file and remove the tables one by one. Using the “Delete” method, it simply remove the tables associated to the active document instance.

For Each wordTbl In MSWordApp.ActiveDocument.tables

wordTbl.Delete

Next

Like this post? Please share to your friends:
  • Vba только для чтения word на
  • Vba таблицы excel примеры
  • Vba строка состояния excel
  • Vba сравнение значений ячеек в excel в одну
  • Vba сдвиг на одну ячейку excel