Я пытаюсь автоматизировать создание колоды PowerPoint, которую я создаю несколько раз в неделю. Я использую программу под названием Alteryx для обновления встроенных файлов Excel для всех моих диаграмм в PowerPoint, и эта часть прекрасно работает. У меня проблема в том, что после открытия PowerPoint все диаграммы выглядят так же, как и были изначально. Только когда я нажимаю кнопку «Изменить данные», PowerPoint, кажется, читает изменения в Excel и обновляет диаграмму. У меня есть более 50 диаграмм, которые мне нужно обновить, и щелчок по редактированию данных на каждом из них занимает очень много времени.
Можно ли создать макрос, который обновит sh всех графиков в моей колоде?
Заранее благодарим вас за потраченное время!
Обновление 1
Я попытался использовать следующий код из другого поста, но в результате получилось 50 открытых рабочих книг.
Dim pptChart As Chart
Dim pptChartData As ChartData
Dim pptWorkbook As Object
Dim sld As Slide
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
Set pptChart = shp.Chart
Set pptChartData = pptChart.ChartData
pptChartData.Activate
shp.Chart.REFRESH
On Error Resume Next
On Error GoTo 0
End If
Next
Next
Set pptWorkbook = Nothing
Set pptChartData = Nothing
Set pptChart = Nothing
Я пытался использовать следующий код, чтобы открыть и закрыть все встроенные книги, но это приводит к ошибке в этой части "ActiveWindow.View.GotoSlide s.Slideindex"
Sub refreshchart()
Dim ppApp As PowerPoint.Application, sld As Slide
Dim s As PowerPoint.Shape
Dim gChart As Chart, i As Integer
ppApp.Visible = True
i = 3
Set sld = ActivePresentation.Slides(i)
sld.Select
For Each s In ActivePresentation.Slides(i)
If s.Type = msoEmbeddedOLEObject Then
s.Select 'select the object
s.OLEFormat.Activate 'Activate it (like 2x click))
ActiveWindow.Selection.Unselect 'To let it close
ActiveWindow.View.GotoSlide s.Slideindex 'make current slide active
End If
Next s
End Sub
Макрос, который открывает рабочие книги для обновления sh диаграмм и автоматически закрывает их, был бы великолепен. Спасибо!