Извлечение таблиц в Microsoft Word - PullRequest
1 голос
/ 03 декабря 2011

У меня есть документ Word с подписями к таблицам, и таблицы имеют значения шпаргалки. Как создать макрос, который обнаруживает все таблицы (ActiveDocument.GetCrossReferenceItems(Referencetype:="Table")), и переносить таблицы в новый документ? Документация MS Word и автозаполнение не помогали.

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Эта процедура копирует все таблицы из активного документа и вставляет в новый документ:

Sub CopyAllTablesToNewDoc()

    Dim docSource As Document
    Dim docDest As Document
    Dim tbl As Table

    Set docSource = ActiveDocument
    Set docDest = Documents.Add

    For Each tbl In docSource.Tables
        tbl.Range.Copy
        docDest.Paragraphs(docDest.Paragraphs.Count).Range.Paste
        docDest.Range.InsertParagraphAfter
    Next tbl

End Sub

Примечание: он не копирует заголовки таблицы.

1 голос
/ 03 декабря 2011

Я собираюсь рассказать вам секрет. Файлы docx - это, по сути, переименованные файлы zip с небольшим количеством XML-файлов, добавленных для размещения ресурсов.

http://msdn.microsoft.com/en-us/library/aa982683%28v=office.12%29.aspx

Я никогда не пытался справиться с этим сам, но с достаточным количеством возни с zip и xml вы должны найти то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...