【发布时间】:2018-11-20 05:53:19
【问题描述】:
Sub OO()
Dim oPPApp As Object, oPPPrsn As Object, oPPSlide As Object
Dim oPPShape As Object
Dim FlName As String
'~~> Change this to the relevant file
FlName = "C:\Users\lich_\Documents\test.pptx"
'~~> Establish an PowerPoint application object
On Error Resume Next
Set oPPApp = GetObject(, "PowerPoint.Application")
If Err.Number <> 0 Then
Set oPPApp = CreateObject("PowerPoint.Application")
End If
Err.Clear
On Error GoTo 0
oPPApp.Visible = True
Set oPPPrsn = oPPApp.Presentations.Open(FlName, WithWindow:=msoFalse)
Set oPPSlide = oPPPrsn.Slides(2)
With oPPSlide.Shapes("Chart1").Chart.ChartData
.ActivateChartDataWindow
.Workbook.Worksheets("Sheet1").Range("B2").Value = 0.1231
.Workbook.Close
End With
End Sub
正如您在上面看到的,我正在尝试在 vba 中编辑图表数据。
但是由于我以后控制了很多图表,所以我想让工作簿不可见(或者尽可能不打开它)
With oPPSlide.Shapes("Chart1").Chart.ChartData
.ActivateChartDataWindow
.Workbook.Worksheets("Sheet1").Range("B2").Value = 0.1231
.Workbook.Close
End With
在这段代码中,我通过“ActivateChartDataWindow”方法打开并更改我想要的数据并关闭。
有没有什么办法可以让窗口不可见或在不打开的情况下编辑数据?
提前感谢您的帮助。
【问题讨论】:
-
Antonio,看看我下面的解决方案。虽然有时可以在不打开 Excel 的情况下编辑现有图表数据(我的回答中给出了示例),但实际上并不总是可能的。在这种情况下,您可以最小化 Excel 窗口。
-
@DavidZemens Thx,我会仔细看看!
标签: vba powerpoint