如何打开现有PowerPoint图表的数据表

use*_*979 2 excel vba excel-vba powerpoint-vba

我经常搜索,似乎没有找到答案.我想更新现有powerpoint图表中的数据.到目前为止,我能够打开他的演示文稿,选择页面,但我无法通过下面的最后一行.

我需要打开数据表,以便将数据粘贴到那里.我能够使用新图表,但随后数据表立即打开,但我想使用existign图表,因为它将根据需要进行所有格式化.然后,我将针对多个页面中的多个图表执行此操作,以更新新的客户组的标准预设.

有人可以显示我将如何打开数据,以便我可以选择正确的单元格并粘贴我的新数据(来自Excel的数据).由于很多原因我不想使用pasteexcel图表,我希望daa驻留在PowerPoint中.此宏从具有新数据的excel文件运行.

Sub test2()

Set rngData = Range("A1:D6")

Set ObjPPT = CreateObject("PowerPoint.Application")
Set ObjPresentation = ObjPPT.Presentations.Open("C:\Documents and Settings\ewnym5s\My Documents\Document_sample.pptx")
Set ObjSlide = ObjPresentation.Slides(1)
Set mychart = ObjSlide.Shapes("Chart 1").Chart
mychart.Select

Set wb = mychart.ChartData
Set ws = wb.Worksheets(1)
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 7

要打开数据表,您必须选择形状,然后激活chartdata.然后您可以访问工作簿.我已经用一些注释稍微修改了你的代码

  Sub test2()

    Set rngData = Range("A1:D6")

    Set ObjPPT = CreateObject("PowerPoint.Application")
    Set ObjPresentation = ObjPPT.Presentations.Open("C:\Documents and Settings\ewnym5s\My Documents\Document_sample.pptx")
    Set ObjSlide = ObjPresentation.Slides(1)
    Set mychart = ObjSlide.Shapes("Chart 1").Chart
    mychart.Select

    'Activate the chart data
    mychart.ChartData.Activate
    'Retrieve the workbook.
    Set wb = mychart.ChartData.Workbook
    Set ws = wb.Worksheets(1)

    'Do stuff with the workbook then close with save
    wb.Close True
  end Sub
Run Code Online (Sandbox Code Playgroud)

如果您不知道这一点,当您激活chartdata时,Excel将打开以显示工作簿.如果使用此方法,则无法避免至少闪烁.为了使闪烁尽可能简短,你可以添加wb.parent.Visible = false.如果您无法忍受闪烁,我在此线程中指出了可能的解决方法,但它需要使用OLEObjects和旧控件.