首页 > 解决方案 > 将 Excel 图表粘贴到 Word 的宏可以工作,但在作为加载项运行时会出错

问题描述

我拼凑了一些代码,以将一些表格和图表从 Excel 复制并粘贴到书签位置的现有 Word 文档中。当我从电子表格模块中运行宏时,一切正常,所有数据都被复制到正确的位置。当我将宏作为加载项安装到 Excel 并运行它时,在将图表粘贴到 Word 时出现错误 5342。

该图表已被复制到剪贴板,因为我可以手动粘贴它,并且我尝试在图表的复制和粘贴之间添加一个 DoEvents,但得到了同样的错误。同样,当作为电子表格中的模块运行时,它工作正常,所以我不确定出了什么问题 - 任何帮助将不胜感激。

For y = LBound(tableArray) To UBound(tableArray)
    Application.CutCopyMode = False
    Set rng = Workbooks(getWBook).Names(tableArray(y)).RefersToRange
    rng.Copy
    If wrdDoc.bookmarks.exists(tableArray(y)) Then
        With wrdDoc.bookmarks(tableArray(y)).Range
            .PasteExcelTable False, False, False
        End With
    End If
    Application.CutCopyMode = False
Next y

With wrdDoc.bookmarks("RQTable").Range.Tables(1)
    .autofitbehavior 2
    .Rows(1).HeadingFormat = True
End With

For Each wrdTbl In wrdDoc.Tables
    With wrdTbl
        .Rows(1).Range.Font.Size = 12
    End With
Next wrdTbl

For x = LBound(chartArray) To UBound(chartArray)
    Application.CutCopyMode = False
    wb.Charts(chartArray(x)).CopyPicture _
    Appearance:=xlScreen, Size:=xlScreen, Format:=xlBitmap
    With wrdDoc
        If .bookmarks.exists(bookmarkArray(x)) Then
            Set wrdRng = .bookmarks(bookmarkArray(x)).Range
            wrdRng.PasteSpecial _
            Link:=False, _
            DataType:=wdPasteEnhancedMetafile, _
            Placement:=wdInLine, _
            DisplayAsIcon:=False
            .bookmarks.Add bookmarkArray(x), wrdRng
        End If
    End With
    Application.CutCopyMode = False
Next x

标签: excelvbams-wordexcel-addins

解决方案


推荐阅读