在PowerPoint中修改嵌入式图表的范围

时间:2019-07-19 12:38:08

标签: vba charts powerpoint

我想将幻灯片2(PowerPoint中的数据)中PowerPoint中嵌入图表的范围从范围(C2:F2)更改为范围(C3:F3)并自动更新图表。

Option Explicit

Sub ModifyChartData()

 Dim WB As Workbook

Set WB = Workbooks.Open(FileName:="U:\Automatisierung\Auto.xlsx", ReadOnly:=True)

With ActivePresentation.Slides(2).Shapes("Chart 1").Chart.ChartData
    .Activate
    WB.Sheets("Chart").Range("B2").Value = WB.Sheets(2).Range("B3").Value
    WB.Sheets("Chart").Range("C2").Value = WB.Sheets(2).Range("C3").Value
    WB.Sheets("Chart").Range("D2").Value = WB.Sheets(2).Range("D3").Value
    WB.Sheets("Chart").Range("F2").Value = WB.Sheets(2).Range("F3").Value
    WB.Close SaveChanges:=True
End With




End Sub

编辑:我已经更新了代码,现在值已从B2-> B3等更改。 我现在有工作簿的问题:我希望更新图表,然后再次关闭工作簿。 对于:WB.Close SaveChanges:= True->它想要保存一个新文件。 WB.Close SaveChanges:= False->我丢失了更新后的图表。

如何在宏中保存和更新文件?

Before After Macro

非常感谢!

1 个答案:

答案 0 :(得分:0)

由于@BigBen和@John Korchok,我设法通过以下代码解决了这个问题:

    Option Explicit

Sub ModifyChartData()


With ActivePresentation.Slides(2).Shapes("Chart 1").Chart.ChartData
    .Activate
    .Workbook.Sheets(2).Range("B2").Value = .Workbook.Sheets(2).Range("B4").Value
    .Workbook.Sheets(2).Range("C2").Value = .Workbook.Sheets(2).Range("C4").Value
    .Workbook.Sheets(2).Range("D2").Value = .Workbook.Sheets(2).Range("D4").Value
    .Workbook.Sheets(2).Range("F2").Value = .Workbook.Sheets(2).Range("F4").Value
    .Workbook.Close SaveChanges:=True
End With




End Sub