VBA 将堆积柱形图上的数据标签从 'Value' 更改为 'Series name'
VBA Change Data Labels on a Stacked Column chart from 'Value' to 'Series name'
我想将堆积柱形图上的数据标签从 'value' 更改为 'series name'。
我要编辑的图表:
我已经在互联网上搜索了我能找到的最好的,我认为唯一可以做到这一点的方法是使用 VBA。我仍然是一个 VBA 菜鸟所以任何帮助将不胜感激
进入 Excel,我 select 我想编辑的图表,然后 select 所有标签,方法是转到图表工具 > 添加图表元素 > 数据标签 > 更多数据标签选项
接下来,在我刚刚打开的对话框中的 "Label Options" 下,我取消选中标签中不需要的任何选项,并选中我想要的选项。
这对我来说很好,但如果它不适合你,或者你出于其他原因想通过 VBA 编辑标签,这个脚本片段将给定图表的标签设置为系列名称:
Option Explicit
Sub Macro1()
With ThisWorkbook.Worksheets("Grafar, utvikling").ChartObjects("Graf3").Chart.FullSeriesCollection(2)
If Not .HasDataLabels Then
.ApplyDataLabels
End If
If Not .DataLabels.ShowSeriesName Then
.DataLabels.ShowSeriesName = True
End If
End With
End Sub
很明显,您需要将工作表名称、图表名称等切换为您图表中的任何内容 - 应该不难弄清楚,但如果您有任何问题,请随时评论问你是否有任何问题。
我使用宏录制器创建宏,然后编辑结果,它通常可以为您尝试执行的任何任务提供一个良好的起点。根据我的经验,以这种方式找出 Excel-VBA 中的对象名称/结构比尝试从头开始找出更容易。
考虑到以上内容不符合您的要求,我怀疑您图表中的每一列都是一个系列。要快速显示图表中每个数据系列的 SeriesName
,请尝试遍历图表中的所有系列:
Sub Macro1()
Dim se As Series
For Each se In ThisWorkbook.Worksheets("Grafar, utvikling").ChartObjects("Graf3").Chart.SeriesCollection
If Not se.HasDataLabels Then
se.ApplyDataLabels
End If
If Not se.DataLabels.ShowSeriesName Then
se.DataLabels.ShowSeriesName = True
End If
If se.DataLabels.ShowValue Then
se.DataLabels.ShowValue = False
End If
Next se
End Sub
我想将堆积柱形图上的数据标签从 'value' 更改为 'series name'。
我要编辑的图表:
我已经在互联网上搜索了我能找到的最好的,我认为唯一可以做到这一点的方法是使用 VBA。我仍然是一个 VBA 菜鸟所以任何帮助将不胜感激
进入 Excel,我 select 我想编辑的图表,然后 select 所有标签,方法是转到图表工具 > 添加图表元素 > 数据标签 > 更多数据标签选项
接下来,在我刚刚打开的对话框中的 "Label Options" 下,我取消选中标签中不需要的任何选项,并选中我想要的选项。
这对我来说很好,但如果它不适合你,或者你出于其他原因想通过 VBA 编辑标签,这个脚本片段将给定图表的标签设置为系列名称:
Option Explicit
Sub Macro1()
With ThisWorkbook.Worksheets("Grafar, utvikling").ChartObjects("Graf3").Chart.FullSeriesCollection(2)
If Not .HasDataLabels Then
.ApplyDataLabels
End If
If Not .DataLabels.ShowSeriesName Then
.DataLabels.ShowSeriesName = True
End If
End With
End Sub
很明显,您需要将工作表名称、图表名称等切换为您图表中的任何内容 - 应该不难弄清楚,但如果您有任何问题,请随时评论问你是否有任何问题。
我使用宏录制器创建宏,然后编辑结果,它通常可以为您尝试执行的任何任务提供一个良好的起点。根据我的经验,以这种方式找出 Excel-VBA 中的对象名称/结构比尝试从头开始找出更容易。
考虑到以上内容不符合您的要求,我怀疑您图表中的每一列都是一个系列。要快速显示图表中每个数据系列的 SeriesName
,请尝试遍历图表中的所有系列:
Sub Macro1()
Dim se As Series
For Each se In ThisWorkbook.Worksheets("Grafar, utvikling").ChartObjects("Graf3").Chart.SeriesCollection
If Not se.HasDataLabels Then
se.ApplyDataLabels
End If
If Not se.DataLabels.ShowSeriesName Then
se.DataLabels.ShowSeriesName = True
End If
If se.DataLabels.ShowValue Then
se.DataLabels.ShowValue = False
End If
Next se
End Sub