0
我目前正在通过宏将许多图表从excel复制到word。我用了录制宏功能,这使我产生了下面的代码:将图表从excel复制到word - 不确定行为
Set charts = Sheets("Charts").ChartObjects
For Each chart In charts
WordApplication.Selection.TypeParagraph
WordApplication.ActiveDocument.Tables.Add Range:=WordApplication.Selection.Range, NumRows:=2, NumColumns:= _
1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With WordApplication.Selection.Tables(1)
If .Style <> "Table Grid" Then
.Style = "Table Grid"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
WordApplication.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
chart.Copy
WordApplication.Selection.Paste
WordApplication.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
' configure the shape (resizing)
WordApplication.Selection.MoveDown Unit:=wdLine, Count:=2
Next
所以我要做的就是,把一个返回,添加表2行第一行对准中心。然后通过从Excel中复制并将其粘贴到Word中来添加图表。通过选择(通过MoveLeft
命令)做一些修改形状(删除),最后,向下移动2个步骤(离开表格)并对所有图表重做。
如果我用F8来解决这个问题,我会得到我想要的结果。但是,如果我只是让它运行,我看到不同的结果,所有的时间,例如:
- 选择连
MoveDown
命令 - 形状为
MoveDown
命令后,仍然选择后停留在表 - 运行时错误'4605':此方法或属性不可用,因为对象引用表格行的末尾(由于选择未被移动并且
Tables.Add
在上一个表格内完成) - 正确结果
我的问题:
我该如何让它工作而不必手动通过宏?
使用Windows XP,Excel 2007(12.0.65.62.5003)。请注意,该问题在Windows 7上表现不一样(未在Windows Vista上测试过)。
好!所以你完成了它 – niko
是的,好消息:D将标记为2天内接受 – Default