0
我使用Windows XP SP 3.我已经写代码从Excel 2003中多个图表粘贴到Word 2003在Word中粘贴Excel图表,VBA
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文件? E.x.我想按以下顺序放置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
然而代码,此代码不插入图表。你能给我一个暗示为什么?
+1。书签是要做到这一点的方法。 –
你会如此友善地检查我的更新代码吗? –
它应该是ChartObjects(1),而不是ChartObject。然后仔细检查模板是否还包含书签 - 在修改模板时很容易使其消失。 –