Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel图表上缺少部分但不是全部数据标签_Excel_Vba_Charts_Label - Fatal编程技术网

excel图表上缺少部分但不是全部数据标签

excel图表上缺少部分但不是全部数据标签,excel,vba,charts,label,Excel,Vba,Charts,Label,我正在创建一个包含以下代码的气泡图。它使用所有预期数据正确创建图表。。。除了在某些情况下,标签就是不显示。我已经排序并添加了值,检查了数据的范围等等,但似乎没有任何理由说明为什么有些标签会显示,有些标签不会显示 我有几个屏幕截图,其中一个显示值是在范围内选择的,而没有显示,数据点在范围内。很难获得所有的屏幕截图,但是第三个屏幕截图显示Co4缺失,即使这些值在数据标签属性中指出 有解决类似问题的经验吗 .DataLabels.Format.TextFrame2.TextRange.InsertCh

我正在创建一个包含以下代码的气泡图。它使用所有预期数据正确创建图表。。。除了在某些情况下,标签就是不显示。我已经排序并添加了值,检查了数据的范围等等,但似乎没有任何理由说明为什么有些标签会显示,有些标签不会显示

我有几个屏幕截图,其中一个显示值是在范围内选择的,而没有显示,数据点在范围内。很难获得所有的屏幕截图,但是第三个屏幕截图显示Co4缺失,即使这些值在数据标签属性中指出

有解决类似问题的经验吗

.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange,“=‘活动图表’!$p$18:$p$”&rgMap.Offset(-1,0)。行,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

您正在引用
“=‘活动图表’!$P$18:$P$”等等
,但您不会告诉用户屏幕截图中的行和列。你发布的那一行代码相当孤独;其余的代码是什么样子的?我看不到要编辑的按钮,也不能在这个评论中发布那么多代码。但是我给了图表一系列的数据来分配点。它通常是有效的,但它们似乎会随着时间的推移而“吸引”,所以最终并不是所有的物种都会出现。我还注意到一些图表在format data label>fill菜单中有“按点显示颜色”,但气泡图没有该选项。这没关系,但我每次都试图重新绘制图表,但它似乎不允许我这样做……发布图表字段方法来标记点确实有问题。如果由于某种原因未打印点(例如,x或y值的空白单元格),则标签当然不会显示,但即使再次打印该点,标签也不会显示,或者永远不会显示。因为您正在为每个系列打印一个点,所以将带有标签Co1等的单元格作为系列名称,并将其包含在数据标签中。比使用任意范围的标签可靠得多。这是有道理的。只是范围必须能够改变。当标签出现时,问题就出现了,然后其中一个输入为空,标签掉了,然后我不能再添加了。下面是一些(丑陋的)图表代码<代码>带工作表(“活动图表”).ChartObjects(“图表8”).Chart.FullSeriesCollection(1).XValues=“=‘活动图表’!$Q$18:$Q$”&rgMap.Offset(-1,0)。行和rgMap.Offset.Values=“=‘活动图表’!$R$18:$R$”&rgMap.Offset(-1,0)。行的可实现性。气泡大小=“=‘活动图表’!$S$18:$S$”&rgMap.Offset(-1,0).行'MM USD结束,带