2016-05-17 21 views
0

如下圖所示,我有一個手動創建的圖表(左側)。而我有我與以下VB腳本創建的右邊的圖表:無法讓VBA腳本創建所需的圖表

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軸。但是,這需要適用於任何數據集。因此,例如,爲了使其成爲一個體面的圖表,總價值最高並增加2.5美元。
  • 自動確保圖例上的所有數據標籤都出現。現在,只有4-12出現。

感謝您的幫助!

回答

0

隨着

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

您選擇整個系列,包括總計。因此,在堆疊圖表的頂部,您可以再次獲得總值,因此這會使最高值翻倍。

用(這裏我不太清楚)

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

你只是剿「全方位」疊加的顯示。試着評論這條線,我認爲你會得到另一個元素。

您可能可以做的最好的工作是手動重做圖表,同時錄製一個宏並檢查那裏的語句。

對於圖例,您可能需要增加顯示區域的大小。

總計您可能會在背景中以100%過度隱藏堆棧。然後應顯示值,但不顯示任何欄。