0

我想将堆积柱形图上的数据标签从“值”更改为“系列名称”。

我要编辑的图表: 在此处输入图像描述

我已经在互联网上搜索了我能做到的最好的方法,我认为可以做到这一点的唯一方法是使用 VBA。我仍然是 VBA 菜鸟,所以任何帮助将不胜感激

4

1 回答 1

0

进入 Excel,我选择要编辑的图表,然后通过转到图表工具 > 添加图表元素 > 数据标签 > 更多数据标签选项来选择所有标签

在此处输入图像描述

接下来,我取消选中标签中不需要的任何选项,并在我刚刚打开的对话框中的“标签选项”下检查我想要的选项。

在此处输入图像描述

这对我来说很好,但如果它不适合您,或者您出于其他原因想要通过 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
于 2016-03-07T22:02:06.433 回答