更改PowerPoint图表中的数据标签格式

时间:2020-10-26 14:55:54

标签: vba charts error-handling powerpoint

我有一个带有许多图表的PPT演示文稿。每个图表都有数据标签。这些数据标签的格式为##.##。我正在尝试通过VBA将其更改为##.0。这是我的工作:

Sub Format_Datalabels()

    Dim Layout As CustomLayout
    Dim Slide As Slide
    Dim Shape As Shape
    
    
    For Each Slide In ActivePresentation.Slides
        For Each Shape In Slide.Shapes
            With Shape
                If .HasChart Then
                    With .Chart
                        For Each Point In .SeriesCollection(1)
                        .DataLabels.NumberFormat = "##.0"
                    End With
                End If
            End With
        Next

End Sub

我想,我实际上并没有掌握实际的数据标签。我抛出错误“找不到方法或数据对象”。知道如何在给定演示文稿中实际格式化所有图表的所有数据标签吗?

1 个答案:

答案 0 :(得分:1)

NumberFormat的文献资料很少。在这种情况下,0不会被视为文字,而是被视为特殊字符。如果在小数点后第一位有一个数字,则会显示该数字。如果没有数字,那么将显示0,所以4变为4.0,但4.1保留为4.1。

通常在数学中,如果每个十进制数字均为0,则根本不显示它。 4优于4.0。但是,如果您需要将所有首位小数都替换为0,则方法如下:

.DataLabels.NumberFormat = "##"".0"""

在这里,因为.0用双引号引起来,所以将其视为文字。我没有尝试调试您的代码。这是经过测试可正常运行的宏:

Sub ChangeDataLabelNumberFormat()
    With ActivePresentation.Slides(1).Shapes(1)
        If .HasChart Then
            With .Chart.SeriesCollection(1)
                .HasDataLabels = True
                .DataLabels.NumberFormat = "##"".0""" 'Displays all numbers as XX.0
            End With
        End If
    End With
End Sub
相关问题