使用PasteFormat将Excel图表导出到Word将返回错误4605命令

时间:2018-12-12 14:24:11

标签: excel vba excel-vba ms-word word-vba

所以我试图了解我的代码出了什么问题。我所要做的只是在Excel工作簿中绘制一些图表并将其导出到Word文档,但是如果尝试以某种方式粘贴它们,则会出现错误。这是我的代码:

Sub ExportingToWord_MultiplePages2()

    'Declare Word Variables
    Dim WrdApp As Word.Application
    Dim WrdDoc As Word.Document

    'Declare Excel Variables
    Dim ChrtObj As ChartObject

    'Create a new instance of Word
    Set WrdApp = New Word.Application
        WrdApp.Visible = True

    'Create a new word document
    Set WrdDoc = WrdApp.Documents.Add

    'Loop through the charts on the active sheet
    For Each ChrtObj In ActiveSheet.ChartObjects

        'Copy the chart
        ChrtObj.Chart.ChartArea.Copy

        **'THIS WON'T RETURN AN ERROR**
        With WrdApp.Selection
            .PasteAndFormat Type:=wdChartPicture
        End With

        '**THIS WILL RETURN THE ERROR**
        With WrdApp.Selection
            .PasteAndFormat Type:=wdChartLinked
        End With

        'Clear the Clipboard.
        Application.CutCopyMode = False

    Next ChrtObj

End Sub

这是一个很奇怪的部分,因为我提供了两种不同的粘贴方式,第一种是将其粘贴为图表图片,并且效果很好。但是,如果我尝试 wdChart wdChartLinked ,它将无法正常工作!我收到错误4605“命令不可用”。

有什么关于为什么会这样的想法?

1 个答案:

答案 0 :(得分:1)

所以我找到了解决该问题的方法,但是我仍然不确定为什么PasteFormat无法与链接的图表一起使用

如果我替换:

'**THIS WILL RETURN THE ERROR**
With WrdApp.Selection
    .PasteAndFormat Type:=wdChartLinked
End With

通过以下操作,我不再遇到错误

'**THIS WILL NOT RETURN AN ERROR**
With WrdApp.Selection
    .PasteSpecial Link:=True, DataType:=wdPasteOLEObject
End With

我想它必须与图表的格式或其他功能有关,但是我仍然感到奇怪的是,我可以使用PasteFormat将其粘贴为图片,而不是作为链接的图表。