Код VBA для PowerPoint

У меня есть таблица Excel для ключевых показателей эффективности продаж, которая связана с базой данных SQL и настроена на обновление каждые 5 минут.

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

Однако когда я закрываю Excel и PowerPoint и открываю их на следующий день, круговые диаграммы в PowerPoint больше не поддерживают динамическую связь. Другими словами, мне нужно вручную нажимать на каждый график (их более 15) и нажимать Обновить данные. Даже после того, как я это сделаю, ссылка больше не будет динамической - она ​​не будет автоматически обновляться при изменении диаграммы Excel.

Чтобы было ясно, у меня оба документа открыты, когда это происходит.

Я предполагаю, что есть способ сделать это с VBA и хотел бы помочь написать код. После открытия PP я хочу, чтобы он постоянно обновлялся автоматически при каждом изменении Excel. Это нормально, если Excel должен быть открыт, чтобы сделать эту работу.

Ценю любую помощь.

1 ответ

Это не проверено, но идея заключается в том, что всякий раз, когда рабочий лист обновляется (изменяется), он должен обновлять ссылки в файле powerpoint с именем KPIs.pptx.
Возможно, потребуется приостановить макрос до обновления файла PPTX, а затем освободить объект.

 Private Sub Worksheet_Change(ByVal Target as Range) 
    Dim objPPT as Object
    objPPT = GetObject("C:\username\KPIs.pptx")
    objPPT.UpdateLinks
           'may need a pause here
    onjPPT = Nothing
 End Sub
Другие вопросы по тегам