0

我使用的是 Windows XP SP 3。我编写了代码来将 Excel 2003 中的多个图表粘贴到 Word 2003。

Dim word As Object
Dim doc As Object
On Error Resume Next

Set word = GetObject(, "word.application") 'gives error 429 if Word is not open
If Err = 429 Then
    Set word = CreateObject("word.application") 'creates a Word application
    Err.Clear
End If

With word
    .Visible = True
    .Documents.Add
End With

Sheets("Data").Select

For i = 1 To 2
    ActiveSheet.ChartObjects(i).Activate
    ActiveChart.ChartArea.Copy
    With word.Selection
        'Paste Chart
        .Range.PasteSpecial
    End With
Next i

我想了解,如何将 Excel 2003 中的图表放入创建的 word 文件中的不同位置?例如,我想按以下顺序放置 4 个图表:第一个图表对齐到文档的左端(不是段落),第二个图表对齐到文档的左侧,3d 位于第一个下方,对于第4个。

谢谢您的回答!

UPD:根据有用的评论,我为我的问题概述了以下解决方案。创建模板文件并在其中插入一个名为insertHere. 在此文件中使用 Excel VBA 进行更改。

这是这个的代码

Sub macro()
Dim word As Object
On Error Resume Next

Set word = GetObject(, "word.application") 'gives error 429 if Word is not open
If Err = 429 Then
    Set word = CreateObject("word.application") 'creates a Word application
    Err.Clear
End If

Set templateFile = word.documents.Add(Template:="C:\Users\PC\Desktop\Doc4.dot")
Sheets("Data").Select

ActiveSheet.ChartObjects(1).Activate 
ActiveSheet.ChartObject(1).Select
ActiveChart.ChartArea.Copy
With templateFile.Bookmarks
    .Item("insertHere").Range.Paste
End With
End Sub

但是,此代码不会插入图表。你能告诉我为什么吗?

4

1 回答 1

4

最简单的方法是Bookmarks在 Word 中定义要将图表粘贴到的位置。在 Word 2003 中,如果我没记错的话,该选项位于“插入”菜单、“书签”上。首先定位光标,插入,书签(Ctrl-Shift-F5)给它一个名称,例如 bkChart1 (不带空格)。然后:

word.ActiveDocument.Bookmarks("bkChart1").Range.PasteAndFormat
' there are other Paste methods, or PasteSpecial

如果您更喜欢使用代码格式化文档和粘贴的对象,那么您最好在 Word 中记录一些宏。它不会创建完美的代码,但会帮助您发现所需的方法和属性。

于 2013-07-24T18:03:26.627 回答