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

Change data label format in PowerPoint Charts

我有一个包含许多图表的 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

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

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