1
我正在使用Excel文檔創建PowerPoint演示文稿。在創建每張幻燈片時,我正在從excel文檔的工作表複製圖表對象。圖表不會在第一個之後被複制。如果我在每個圖表後都包含一個消息框,它們就是。我已經嘗試在這些複製/粘貼以及DoEvents之間加入延遲,並嘗試在每次粘貼後清除剪貼板,但似乎沒有任何效果。我想知道是否有人能夠啓發我爲什麼會發生這種情況?我使用Excel二千零十分之二千零十PP - 這基本上是我使用的每張幻燈片相同的代碼..將圖表對象從Excel複製到PP不一致結果
'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")
請嘗試使用'.Windows(1).View.paste'或'.Windows(1).View.pastespecial ....'而不是'... ExecuteMso ...'。它會改善什麼嗎?但是也可以用'DoEvents'來檢查它。 –
感謝您的幫助。使用pastespecial,DoEvents並將我的工作表聲明爲對象似乎有訣竅! – John
當然,這是可以接受的,正是我所需要的。儘管現在我陷入了另一個問題。我使用.Application.CommandBars.ExecuteMso(「PasteSourceFormatting」)的原因是因爲它保持我的源格式。 PasteSpecial似乎並沒有保留我所有的圖表對象的原始格式。有沒有辦法調用它,以便它與ExecuteMso一樣? – John