将图表对象从Excel复制到PP不一致的结果

时间:2014-01-24 06:50:05

标签: vba excel-vba powerpoint-vba excel

我正在使用Excel文档创建一个powerpoint演示文稿。在创建每张幻灯片时,我正在从Excel文档中的工作表中复制图表对象。在第一个图表之后不会复制图表。如果我在每个图表后面都包含一个消息框,那么它们就是。我已经尝试在这些复制/粘贴以及DoEvents之间加入延迟,并在每次粘贴后试图清除剪贴板时弄乱但似乎没有任何效果。我想知道是否有人可以告诉我为什么会这样?我正在使用Excel 2010 / PP 2010 - 这基本上与我为每张幻灯片使用的代码相同..

'Slide #5
Set PPSlide = PPPres.Slides.Add(5, ppLayoutTitleOnly)
Set ttlBox = PPSlide.Shapes("Title 1")
Worksheets("worksheetname").ChartObjects("Chart 2").Chart.ChartArea.Copy

With PPPres
.Windows(1).Activate
.Windows(1).View.GotoSlide 5
.Application.CommandBars.ExecuteMso ("PasteSourceFormatting")
End With

With PPSlide
  .Shapes.AddPicture Filename:=imagePath & "outlier.png", LinktoFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=0, Top:=0
End With

With ttlBox
    .Fill.ForeColor.RGB = RGB(0, 0, 128)
    .Top = 0
    .Left = 175
    .Width = 545
    .Height = 70
    .TextFrame2.TextRange.Characters.Text = "Losses"
    .TextFrame2.TextRange.Font.Size = "22"
    .TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(255, 255, 255)
    .TextFrame2.AutoSize = msoAutoSizeTextToFitShape
End With

MsgBox ("Hi")

1 个答案:

答案 0 :(得分:0)

经过大量测试后,不同的解决方案 - 在复制和粘贴之间使用Wait(1)命令实际上是解决方案。