我有一个包含数据和图表的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图表的源数据? (如果有意义的话?)