更改PowerPoint中的图表数据范围

时间:2015-09-25 20:43:39

标签: excel vba powerpoint-2010

我有一个包含数据和图表的Excel文件。我已经创建了一个宏来读取文本文件,并根据excel文件中的日期更新数据和图表数据范围。数据范围将在文本文件中日期前5天开始,直至日期。

这在Excel中完美运行但现在我想要宏做的是打开我已创建的PowerPoint文件,其中包含链接到Excel文件的两个图表并更改PowerPoint中Excel图表的数据范围介绍

我可以打开PowerPoint并按名称选择图表,但我无法更改数据范围。

以下是我目前正在使用的代码,但不会产生任何错误......

打开PowerPoint并将全局oPPT变量设置为打开的演示文稿。

Public Sub Open_PowerPoint_Presentation()
'Opens a PowerPoint Document from Excel

Set objPPT = CreateObject("PowerPoint.Application")
objPPT.Visible = True

Set oPPTFile = objPPT.Presentations.Open(FileName:=ActiveWorkbook.Path & "\DailyHealthCheck.pptx")
End Sub 

调用上面的例程,更改某些标签上的日期,然后尝试更改Excel的源数据。

' open the gd metrics power point, must be manually closed later
Open_PowerPoint_Presentation

' set the dates in the ppt slide to the current date
oPPTFile.Slides(1).Shapes("Low Left Date").TextFrame.TextRange.Text = Format(Now, "MMMM d, yyyy")
oPPTFile.Slides(1).Shapes("Critical Issues Table").Table.Cell(1, 1).Shape.TextFrame.TextRange.Text = "Grid Director Critical Issues (as of " & Format(Now, "M/d") & ")"

' change the date ranges of the chart
If ppdRangeStr <> "" Then
    Dim splitDateRange() As String
    splitDateRange = Split(ppdRangeStr, ":")
    ppdRangeStr = "='process per day'!$" & Left(splitDateRange(0), 1) & "$" & Right(splitDateRange(0), Len(splitDateRange(0)) - 1) & ":$" & Left(splitDateRange(1), 1) & "$" & Right(splitDateRange(1), Len(splitDateRange(1)) - 1)
    MsgBox ppdRangeStr
    oPPTFile.Slides(1).Shapes("Processed Per Day Chart").Chart.SetSourceData Source:=ppdRangeStr, PlotBy:=xlColumns
    ' reset data labels

    oPPTFile.Slides(1).Shapes("Processed Per Day Chart").LinkFormat.Update

End If   

字符串ppdRangeStr是“'每天处理'!$ H77:$ G81”,这与Excel文件(正常工作)中的图表使用的范围相同。

有谁知道如何在Excel文件中创建宏来更改源数据在Excel文件中的PowerPoint中Excel图表的源数据? (如果有意义的话?)

0 个答案:

没有答案