如下图所示,我手动创建了一个图表(左侧)。我在右侧创建了使用以下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
我的宏观不足之处在于以下几个方面:
感谢您的帮助!
答案 0 :(得分:0)
使用
Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)).Select
您选择整行,包括总计。因此,在堆积图表的顶部,您可以再次获得总值,因此这会使高值翻倍。
(这里我不太确定)
ActiveChart.SeriesCollection("Total").Format.Fill.Visible = msoFalse
你只是压制'Total'堆栈的显示。试着对这一行进行评论,我想说你会得到另一个元素。
您可能做的最好的事情是在录制宏并检查那里的语句时手动重做图表。
对于图例,您可能需要增加显示区域的大小。
你可以在背景中以100%过度的方式拖累一个看不见的堆栈。然后应显示值,但不显示任何条形。