Как обновить встроенные диаграммы excel в powerpoint?

У меня есть 30 диаграмм, которые были созданы из excel и были вставлены на слайды powerpoint. Каждый месяц я должен обновлять эти 30 встроенных диаграмм, вручную нажимая на диаграммы и редактируя их.

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

Я думаю, что решение заключается в написании vba в powerpoint. Может ли любой эксперт здесь предложить написать этот код vba, чтобы все диаграммы были обновлены в powerpoint? В настоящее время я использую powerpoint 2007. Ваша помощь очень ценится.

2 ответов


Если вам нужно отредактировать диаграммы, то ясно, что вам нужно будет либо отредактировать базовые файлы Excel, либо иметь возможность редактировать в PowerPoint

поскольку вы используете PowerPoint2007, который обеспечивает полную поддержку Excel (в отличие от PowerPoint 2003, который имеет таблицу данных), я бы

Часть 1

  1. свяжите данные файла Excel с данными Excel под каждой диаграммой
  2. обеспечьте способность или использовать эти данные сразу, или over-ездить с пользовательскими данными

Sample

Это дает вам гибкое решение, за исключением того, что Excel, лежащий в основе каждой диаграммы, не может быть обновлен автоматически с помощью команды PowerPoint menu Update Links.

Часть 2

вы можете использовать код ниже, чтобы проверить, имеет ли каждая фигура на каждом слайде диаграмму. Если это так, этот код обновит первую ссылку Excel в файле Excel под диаграммой (эта часть может быть изменена на обрабатывать несколько ссылок)

    Sub ChangeChartData()

    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
                Set pptWorkbook = pptChartData.Workbook
                On Error Resume Next
                'update first link
                pptWorkbook.UpdateLink pptWorkbook.LinkSources(1)
                On Error GoTo 0
                pptWorkbook.Close True
            End If
        Next
    Next

    Set pptWorkbook = Nothing
    Set pptChartData = Nothing
    Set pptChart = Nothing

End Sub

Это довольно легко сделать, без какого-либо кода VBA.

  1. Нажмите кнопку "офис", выберите " Редактировать ссылки на файл "(это ниже "запустить проверку совместимости", вам нужно будет прокрутить вниз, чтобы увидеть этот последний вариант):

    Office Menu, "Prepare" submenu

  2. выберите все встроенные диаграммы (называемые здесь "ссылки"), нажмите "Обновить сейчас":

    "Links" window

вы можете использовать то же окно для разорвать ссылки, а также изменить исходный файл для любой данной ссылки.