Excel VBA-从表主体范围添加数据标签

时间:2018-10-31 14:24:47

标签: excel vba excel-vba range bubble-chart

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

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

这是我的数据:

  • 图表名称:图表1
  • 表格名称:表格(此表格有标题,我是 仅在表格内搜索范围(数据范围)。

这是我的代码,它给我错误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

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

Screenshot 1

在这里您可以看到它使用Y列(预期的项目潜力)作为数据标签文本。我希望它应该从表的第一列(项目编号)中获取。

2 个答案:

答案 0 :(得分:0)

这是我用于范围内数据标签的代码。已经在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

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

答案 1 :(得分:0)

所以我自己找到了解决方案。这是我在表中将标签插入气泡图的最终代码:

Sub DataLables()

  ActiveSheet.ChartObjects("Chart 1").Activate
  ActiveChart.FullSeriesCollection(1).DataLabels.Select

  For i = 1 To Range("Table1[Project '#]").Count

    ActiveChart.FullSeriesCollection(1).Points(i).DataLabel.Select

    Selection.Formula = Range("Table1[Project '#]").Cells(i, 1)

  Next i

End Sub