Источник диаграммы динамического диапазона обновления Powerpoint VBA на основе связанных файлов Excel - PullRequest
0 голосов
/ 16 октября 2018

Я использую следующий код, чтобы выбрать слайды в презентации PowerPoint и связать диаграммы на этих слайдах с файлом Excel, так как мои данные каждый месяц меняются.Код прекрасно работает.

Sub UpdateLinks()
Dim ExcelFile
Dim exl As Object
Set exl = CreateObject("Excel.Application")
Dim sld As Slide

ExcelFile = "C:\Users\J\SampleSourceFile.xlsm"

Dim i As Integer
Dim shp As Shape



Dim L As Long
Dim rayFixed() As Variant
Dim sldR As SlideRange
Dim strInput As String
Dim raySlides() As Long
strInput = InputBox("Input slides to select")
rayFixed = getArray(strInput)
ReDim raySlides(0 To UBound(rayFixed))
For L = 0 To UBound(rayFixed)
raySlides(L) = CLng(rayFixed(L))
Next L

Set sldR = ActivePresentation.Slides.Range(raySlides)


 For Each sld In sldR
 'Go through every slide

         'Go through every shape on every slide
        For Each shp In sld.Shapes
On Error Resume Next
             'Set the source to be the same as teh file chosen in the 
opening dialog box
            shp.LinkFormat.SourceFullName = ExcelFile
            If shp.LinkFormat.SourceFullName = ExcelFile Then
                 'If the change was successful then also set it to update 
automatically
                shp.LinkFormat.Update
                'other option is ppUpdateOptionManual
            End If

        Next shp


Next

End Sub'

Однако есть пара диаграмм, к которым я добавляю данные в файл Excel каждый месяц.Например, last month мой источник диаграммы был =Tenure!$O$1:$Y$8, тогда как this month это было бы =Tenure!$O$1:$Z$8.

Часть =Tenure!$O$1:$Y$8 обновляется корректно, но Z column там нет.Несмотря на то, что это точно в связанном файле Excel, Powerpoint заставляет меня вручную выбирать данные и изменять координаты, поскольку PowerPoint сохраняет все, что я использовал ранее (даже после отмены связи / повторного связывания).Мне пришлось повторить то же действие для нескольких графиков, и мне было интересно, есть ли какой-нибудь код, который я мог бы использовать для обновления диапазона без необходимости вручную нажимать на график (даже если он находится в отдельном модуле - я не против обновления кодакаждый месяц для нового диапазона, но одни и те же графики часто находятся на разных # слайдах в зависимости от колоды).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...