首页 文章

无法让VBA脚本创建所需的图表

提问于
浏览
0

如下图所示,我手动创建了一个图表(左侧) . 我在右侧创建了使用以下VB脚本创建的图表:

Sub StackedBarChart()
'
' StackedBarChart Macro
' 
'       
    Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnStacked
    ActiveChart.PlotBy = xlColumns
    ActiveChart.SetElement (msoElementDataLabelCenter)
    ActiveChart.SeriesCollection("Total").Format.Fill.Visible = msoFalse

End Sub

enter image description here

我的宏观与我的不足之处在于以下几个方面:

  • 我需要将"Total"数据标签设置为InsideBase

  • 我需要重新缩放y轴 . 但是,这需要适用于任何数据集 . 因此,例如,获取最高总 Value 并为其添加2.5美元,以使其成为一个体面的图表 .

  • 自动确保显示图例上的所有数据标签 . 现在,只有4-12出现 .

谢谢你的帮助!

1 回答

  • 0

    随着

    Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
    

    你选择整行,包括总数 . 因此,在叠加图表的顶部,您可以再次获得总值,因此这会使高值翻倍 .

    随着(这里我不太确定)

    ActiveChart.SeriesCollection("Total").Format.Fill.Visible = msoFalse
    

    你只是压制'Total'堆栈的显示 . 试着将这一行评论出来,我想说你会得到另一个元素 .

    您可能做的最好的事情是在记录宏并检查那里的语句时手动重做图表 .

    对于图例,您可能需要增加显示区域的大小 .

    您可以在背景中以100%过度的方式拖累一个看不见的堆栈 . 然后应显示值,但不显示任何条形 .

相关问题