Excel VBA - 添加 Table body 范围内的数据标签
Excel VBA - Add Data Labels from Table body range
我有一个 Excel 工作表,其中 table 包含项目名称、x、y、大小的列,以便创建气泡图。
我希望它将数据标签更改为等于相应的项目名称,但我该怎么做?我在网上搜索了解决方案,但都没有成功。
这是我的数据:
- 图表名称:图表 1
- Table 姓名:Table(这个有 headers,我是
仅搜索 table 范围内的范围(数据 body 范围)。
这是我的代码,它给出了错误 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
这是我的项目的屏幕截图。
在这里您可以看到它使用 Y 列(预期项目潜力)作为数据标签文本。我希望它做的是它应该从我的 table (Project #).
的第一列中获取它
这是我用于范围内数据标签的代码。前段时间在 Whosebug 上发现了这个:
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
如果这有帮助,请告诉我。它将使用范围内的值更新数据标签。
所以我自己找到了解决方案。这是我将 Table 中的标签插入气泡图中的最终代码:
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
我有一个 Excel 工作表,其中 table 包含项目名称、x、y、大小的列,以便创建气泡图。
我希望它将数据标签更改为等于相应的项目名称,但我该怎么做?我在网上搜索了解决方案,但都没有成功。
这是我的数据:
- 图表名称:图表 1
- Table 姓名:Table(这个有 headers,我是 仅搜索 table 范围内的范围(数据 body 范围)。
这是我的代码,它给出了错误 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
这是我的项目的屏幕截图。
在这里您可以看到它使用 Y 列(预期项目潜力)作为数据标签文本。我希望它做的是它应该从我的 table (Project #).
的第一列中获取它这是我用于范围内数据标签的代码。前段时间在 Whosebug 上发现了这个:
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
如果这有帮助,请告诉我。它将使用范围内的值更新数据标签。
所以我自己找到了解决方案。这是我将 Table 中的标签插入气泡图中的最终代码:
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