我正在使用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文件中? 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
但是,此代码不会插入图表。你能给我一个提示吗?
答案 0 :(得分:4)
最简单的方法是在Word中为要粘贴图表的位置定义Bookmarks
。在Word 2003中,如果我没记错,该选项位于“插入”菜单上,即“书签”。首先定位光标,插入,书签( Ctrl-Shift-F5 )为其命名,例如bkChart1(不含空格)。然后:
word.ActiveDocument.Bookmarks("bkChart1").Range.PasteAndFormat
' there are other Paste methods, or PasteSpecial
如果您希望使用代码格式化文档和粘贴的对象,那么您最好在Word中记录一些宏。它不会创建完美的代码,但它将帮助您发现所需的方法和属性。