我想将幻灯片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->我丢失了更新后的图表。
如何在宏中保存和更新文件?
非常感谢!
答案 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