【发布时间】:2019-07-23 15:49:35
【问题描述】:
我想将幻灯片 2 上嵌入图表的范围(excel 中的数据)从范围 (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 等更改值。 我现在遇到了工作簿的问题:我希望更新图表并再次关闭工作簿。 For: WB.Close SaveChanges:=True --> 它想保存一个新的文件。 WB.Close SaveChanges:=False --> 我丢失了更新的图表。
如何在宏中保存和更新文件?
非常感谢!
【问题讨论】:
-
见question。不知道为什么要打开工作簿。您是使用 Powerpoint 还是 Excel 工作?
-
我正在使用 PowerPoint 进行表演。
-
@BigBen 给定的问题会更改值,但我只想移动范围并更新 PowerPoint 中的图表。
-
请edit你的问题与你尝试的代码和你得到的错误,所以我们可以帮助你,谢谢!
-
正如 BigBen 所指出的,您的代码从 U 盘打开一个工作簿,而不是 PowerPoint 中嵌入的工作簿。所以 With ActivePresentation 行什么也不做。如果图表链接到 PowerPoint,则可以从驱动器 U 打开工作簿,而不是嵌入。如果要使用嵌入在 PowerPoint 中的图表,则需要打开嵌入的对象,而不是磁盘上的工作簿。
标签: vba charts powerpoint