Excel 图表上缺少一些但并非全部数据标签

问题描述 投票:0回答:2

我正在创建一个包含以下代码的气泡图。它使用所有预期数据正确创建图表...除了在某些情况下,标签没有显示。我已经对值进行了排序和添加,并检查了数据范围等,但似乎没有任何原因导致有些标签显示而有些标签不显示。

我有一些屏幕截图,其中一张显示在范围内选择了值,但没有显示,并且该数据点在范围内。很难获得所有屏幕截图,但第三个屏幕截图显示 Co4 缺失,即使这些值已在数据标签属性中指向。

有解决此类问题的经验吗?

.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='活动图表'!$P$18:$P$" & rgMap.Offset(-1, 0).Row, 0

Chart with circled errors data table example enter image description here

我检查了这些条目,但似乎不相关所有标签丢失旭日图标签问题

excel vba charts label
2个回答
0
投票

终于在我的电脑前呆了几分钟了。

这是一段非常旧的代码,我已针对 Excel 2013+ 进行了调整。

将数据按此顺序放入四列:名称、X、Y 和 Z(气泡大小)。

以下代码使用此数据创建气泡图,忽略任何非数据行(标题行或 X、Y 或 Z 为空白的行)。它为每一行创建一个单独的系列,使用第一列作为单点系列的名称,然后应用包含系列名称和气泡大小的标签。

Sub OneRowPerBubbleSeries()
    '' Takes 4-column range and constructs Bubble chart
    '' Uses one series per row: Columns in order: Name, X, Y, Z
    Dim wks As Worksheet
    Dim cht As Chart
    Dim srs As Series
    Dim rng As Range
    Dim rng1 As Range
    Dim rownum As Integer
    Dim bFirstRow As Boolean
    Set wks = ActiveSheet
    Set rng = Selection
    Set cht = wks.Shapes.AddChart2(269, xlBubble3DEffect).Chart
    bFirstRow = True
    For rownum = 2 To rng.Rows.Count
        Set rng1 = rng.Cells(rownum, 2).Resize(1, 3)
        If IsNumeric(rng1.Cells(1, 1).Value) And _
                IsNumeric(rng1.Cells(1, 2).Value) And _
                IsNumeric(rng1.Cells(1, 3).Value) Then
            '' First time: need to do it differently
            If bFirstRow Then
                cht.SetSourceData Source:=rng1, PlotBy:=xlColumns
                bFirstRow = False
            Else
                Set srs = cht.SeriesCollection.NewSeries
            End If
            With cht.SeriesCollection(cht.SeriesCollection.Count)
                .Values = rng1.Cells(1, 2)
                .XValues = rng1.Cells(1, 1)
                .BubbleSizes = "=" & rng1.Cells(1, 3).Address _
                    (ReferenceStyle:=xlR1C1, External:=True)
                .Name = rng.Cells(rownum, 1)
                .HasDataLabels = True
                With .DataLabels
                  .Position = xlLabelPositionRight
                  .ShowSeriesName = True
                  .ShowValue = False
                  .ShowBubbleSize = True
                  .NumberFormat = "$#,##0"
                End With
            End With
        End If
    Next
End Sub

0
投票

我不确定对于某些 Excel 用户来说这是否仍然是一个问题,但我找到了一个快速解决方法。我只是取消选中并选中“数据标签选项”下的“从单元格中选择值”选项(请参阅下面的屏幕截图以供参考),这解决了问题。但如果我在表中创建一个新条目以在时间轴中添加新事件,它就会重新出现,然后我必须再次打开“数据标签”选项并重复该过程。它有效,但如果您要制作季度或年度事件报告,则会很忙。我认为这是一个需要 MS 团队修复的错误。 示例屏幕截图 - 数据标签选项

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