我正在尝试复制在工作簿工作表中创建的 ChartObject 并将其粘贴到 powerpoint 2010 幻灯片中,使其成为带有数据(嵌入)的独立 Excel 图表。
当我手动执行时,即:
- 复制工作表中存在的 ChartObject
- 转到 Powerpoint 幻灯片
- 单击 PasteSpecial 并选择“使用目标主题和嵌入工作簿 (H)”。
- 右键单击 Powerpoint 中的 ChartObject 并单击“编辑数据”。
然后我得到一个新的独立工作簿,标题为“Microsoft Excel 中的图表”,它显示了图表和数据。我无法复制这种情况,我使用 Excel VBA 获得标题为“Microsoft Excel 中的图表”的新独立工作簿。有人可以帮忙吗?
假设工作表上有一个简单的柱形图,代码如下:
Option Explicit
Sub doit()
Dim Temp As Workbook
Dim Rng As Range
Dim ChtObj As ChartObject
With ThisWorkbook.Sheets(1)
Set ChtObj = .ChartObjects(1)
With ChtObj
.Copy
End With
Dim ppapp As Object
Dim pppres As Object
Dim ppslide As Object
On Error Resume Next
Set ppapp = GetObject(, "Powerpoint.Application")
If ppapp Is Nothing Then
Set ppapp = CreateObject("Powerpoint.Application")
End If
On Error GoTo 0
Set pppres = ppapp.presentations.Add
Set ppslide = pppres.Slides.Add(1, 12)
With ppapp
.Activate
.Visible = msoTrue
.ActiveWindow.viewtype = 1
End With
ChtObj.Copy
ppapp.ActiveWindow.View.Paste
End With
End Sub