首页 > 解决方案 > Excel VBA - 从表格主体范围添加数据标签

问题描述

我有一个 Excel 工作表,其中包含项目名称、x、y、大小列,以便创建气泡图。

我希望它将数据标签更改为等于相应的项目名称,但我该怎么做?我在网上搜索了解决方案,但都没有成功。

这是我的数据:

这是我的代码,它给了我错误 91:

Sub InsertLabelnameBubble()
    ActiveChart.FullSeriesCollection(1).DataLabels.Select

    For i = 1 To Range("Table").Rows.Count
        ActiveChart.FullSeriesCollection(1).Points(i).DataLabel.Select
        Selection.Formula = Range("Table").Cells(i, 1)
    Next i
End Sub

这是我的项目的屏幕截图。

截图 1

您可以在其中看到它使用 Y 列(预期项目潜力)作为数据标签文本。我想做的是它应该从我的表(项目#)的第一列中获取它。

标签: excelvbarangebubble-chart

解决方案


这是我用于某个范围内的数据标签的代码。不久前在stackoverflow上发现了这个:

Sub DataLables 
    Dim ws as worksheet, DataLR As Series, pts As Points, pt As Point, rngLabels As Range, IDi As Integer, ChtObj As ChartObject
    Set ws = ActiveWorkbook.ActiveSheet 

    With ws
    Set ChtObj = .ChartObjects("ChatName")
    Set rngLabels = .Range("A5:A39")
            Set DataLR = ChtObj.Chart.SeriesCollection(2)
            DataLR.HasDataLabels = True  
         For Each pt In pts
         IDi = IDi + 1
             pt.DataLabel.Text = rngLabels.Cells(IDi).Text
             pt.DataLabel.Font.Bold = True
         Next pt    
    End With

End Sub

让我知道这是否有帮助。它将使用范围内的值更新数据标签。


推荐阅读