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