Выбрать новый массив в диаграмме PowerPoint с помощью VBA? - PullRequest
0 голосов
/ 24 августа 2018

У меня есть график в powerpoint, в его данных много строк, и я хочу с помощью VBA выбрать только конкретную строку с VBA, можете ли вы мне помочь? Thx!

1 Ответ

0 голосов
/ 24 августа 2018

Слегка модифицируя этот ответ :

  1. Создать и заполнить ComboBox1 с "Bus 1" до "Bus 22".

Private Sub ComboBox1_DropButtonClick()
    Dim i As Integer

    With ComboBox1
        If .ListCount = 0 Then
            For i = 1 To 22
                .AddItem "Bus " & i, i - 1
            Next i
        End If
    End With
End Sub

  1. Затем вместо того, чтобы скрывать строки, фактически измените исходные данные диаграммы, используя Chart.SetSourceData. Для этого:

    • Добавить ссылку на Библиотеку объектов Microsoft Excel в Инструменты> Ссылки .
    • Find ComboBox1.Value на Worksheet и получите соответствующий диапазон исходных данных.
    • Затем используйте SetSourceData с объединенной ссылкой на Worksheet s Name и Address Исходных данных

Private Sub ComboBox1_Change()
    Dim shp As Shape: Set shp = ActivePresentation.SlideShowWindow.View.Slide.Shapes("Chart 5") ' Change to your chart name
    Dim rng As Excel.Range, dataRng As Excel.Range
    Dim ws As Excel.Worksheet: Set ws = shp.Chart.ChartData.Workbook.Sheets(1)

    With ws
        Set rng = .Cells.Find(ComboBox1.Value)

        If Not rng Is Nothing Then
            ' Data rng starts 1 column to the right and spans 2 rows
            Set dataRng = .Range(rng.Offset(, 1), rng.End(xlToRight).Offset(1))
            shp.Chart.SetSourceData Source:="='" & .Name & "'!" & dataRng.Address, PlotBy:=xlRows
        End If
    End With
End Sub
...