2016-03-07 88 views
0

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

我想编辑图表: enter image description here

我也搜索了最好的,我可以在互联网的唯一途径上,我认为这是可以做到的使用VBA。我仍然是一个VBA小白所以任何帮助,将不胜感激

+0

不图中取消选中“值”,并检查“系列名称”左侧格式化对话框打开你的照片是否完全符合你的要求? http://i.imgur.com/Inpf80X.png – eirikdaude

+0

出于某种奇怪的原因,您一次只能选择一个标签因此,当您改变它时,它只会改变您选择的标签。而且也没有办法选择和改变他们都喜欢这个 –

回答

0

去到Excel中,我选择图表我想编辑,然后转到图表工具选择的所有标签>添加图表元素>数据标签>更多数据标签选项

enter image description here

接下来,我取消我不希望在我的标签任何选项,并检查这些我确实想,在我刚打开的对话框中的“标签选项”。

enter image description here

这对我来说工作正常,但如果它不适合你,或者你的一些其他原因想要编辑通过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 

显然你需要切换worksheetnames,图名等任何你有你的图表中 - 它不应该是很难搞清楚,但是,如果您有任何麻烦感觉如果您有任何问题,请自由评论这个问题。

我通过使用宏录制,然后编辑结果创建的宏,它往往可以给你试图做什么任务一个很好的起点。根据我的经验,通过这种方式可以更容易地找出Excel-VBA中的对象名称/结构,而不是试图从头开始。

考虑到上述情况,你想要的东西没有做,我怀疑你的图表中的每个列是一个系列。要快速显示SeriesName图表中的每个dataseries,尝试在图表中遍历所有系列:

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 
+0

喜Eirkdaude 感谢这样一个详细的答复。 这里是一个视频,展示你的两个解决方案发生了什么。 https://www.youtube.com/watch?v=gcjX3dHSF6M它确实说明一个更好的工作,然后发生了什么事我的文字下面 –

+0

使用第一种方式,我去“图表工具>添加图表元素>数据标签>更多数据标签选项“,它最初将所有数据标签添加为”值“和”显示引导线“。当我去改变它们时,没有办法选择所有的数据标签。我只能选择数据中具有相同列的标签。所以当我选择它们并将它们从“Value”改为“Series”时,只有那些我能够强调我可以改变的那些。 VBA宏有类似的结果。它只会更改其中一列数据的数据标签。 –

+0

@JonathanDeWet我怀疑你的每一列可能是一个数据库 - 查看我的答案更新,看看你如何解决这个问题。如果我的答案对您有用,请注意并/或标记为解决您的问题。 – eirikdaude