Изображение таблицы удаляется после вставки - PullRequest
0 голосов
/ 06 августа 2020
Function FnAddTableToWordDocument()
Dim intNoOfRows
Dim intNoOfColumns
Dim objWord
Dim objDoc
Dim objRange
Dim objTable

intNoOfRows = 14
intNoOfColumns = 2

Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Add
    Set objRange = objDoc.Range
    ActiveSheet.Shapes.Range(Array("qr_code_1")).Select
    Selection.copy
    objWord.Selection.PasteAndFormat (wdPasteDefault)

    objDoc.Tables.Add objRange, intNoOfRows, intNoOfColumns
    Set objTable = objDoc.Tables(1)

    objTable.Borders.Enable = Disable
    objTable.Rows.Item(1).Height = 0
For i = 1 To intNoOfRows
For j = 1 To intNoOfColumns
        objTable.Cell(i, j).Range.Text = ActiveSheet.Cells(i, j).Value
        objTable.Rows.Item(i).Height = 13

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

1 Ответ

0 голосов
/ 06 августа 2020

В документации указано:

Таблица заменяет диапазон, если диапазон не свернут.

Попробуйте заменить строки

    objDoc.Tables.Add objRange, intNoOfRows, intNoOfColumns
    Set objTable = objDoc.Tables(1)

с этой строкой (обновлено после комментариев)

    objDoc.Shapes(1).ConvertToInlineShape
    objDoc.Range.Select
    objWord.Selection.Collapse (0)
    Set objTable = objDoc.Tables.Add(objWord.Selection.Range, intNoOfRows, intNoOfColumns)

Другой подход - вставить форму после добавления таблицы.

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