在powerpoint vba中更改图表的数据源

问题描述 投票:1回答:1

我在PowerPoint中有一个条形图,想要选择行(类别1 - 4,请参阅屏幕截图1),具体取决于我在ComboBox中的选择。这是我的代码到目前为止:

  Private Sub ComboBox1_Change()
  With SlideShowWindows(1).View


    Select Case ComboBox1.Value
        Case "Category 1"

        Case "Category 2"

        Case Else

    End Select

End With
End Sub

当没有单独的Excel工作表时,我不知道如何选择源数据。在插入Diagramm时生成的PowerPoint中只有“Excel-Sheet”。

vba charts powerpoint powerpoint-vba
1个回答
0
投票

您的图表包含在Shape对象中,您可以通过Shape.Chart.ChartData.Workbook.Sheets(1)访问源数据,正如this answer建议的那样。

我通过您的问题理解您希望图表仅显示所选的类别。您可以隐藏不希望在源数据中显示的行,它们将隐藏在图表中。

这将填充ComboBox1类别1-4。

Private Sub ComboBox1_DropButtonClick()
    With ComboBox1
        If .ListCount = 0 Then
            .AddItem "Category 1", 0
            .AddItem "Category 2", 1
            .AddItem "Category 3", 2
            .AddItem "Category 4", 3
        End If
    End With
End Sub

然后你可以隐藏你不希望用这样的东西显示的行。

Private Sub ComboBox1_Change()
    Dim shp As Shape: Set shp = ActivePresentation.SlideShowWindow.View.Slide.Shapes("Chart 3") ' Change to your chart name here
    Dim rw As Integer, j As Integer 

    Select Case ComboBox1.Value
        Case "Category 1"
            rw = 2
        Case "Category 2"
            rw = 3
        Case "Category 3"
            rw = 4
        Case "Category 4"
            rw = 5
        Case Else
            Exit Sub
    End Select

    For j = 2 To 5
        shp.Chart.ChartData.Workbook.sheets(1).Rows(j).Hidden = (j <> rw)
    Next j
End Sub

截图

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.