粘贴后删除表格图像

时间:2020-08-06 09:33:00

标签: excel vba ms-word

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

在上面的代码中,我将图像从电子表格复制到word文档中,然后将其创建,然后添加表格。 问题是我添加表格后立即删除整个图像,无论何时何地拒绝与表格在同一文档上,都无所谓。 我一直在发疯,这是我第一次使用Word文档将其另存为单独的数据,我感觉自己确实缺少一些明显的东西。

1 个答案:

答案 0 :(得分:0)

documentation指出:

如果范围未折叠,则表将替换该范围。

尝试替换行

    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)

另一种方法是在添加表格后粘贴形状。