2016-11-07 16 views
0

私が積み上げ面グラフにグラフ化しています次のデータグリッドを持っていると私は、任意の負の変数に変数の二軸は、VBAは、二軸に任意の負のシリーズを設定し

Year | var 1 | var 2 | var 3 | 
------ | ------ | ------ | ------ | 
2012 | 73.97% | 7.70% | -0.86% | 
2013 | 74.49% | 7.46% | -0.76% | 
2014 | 73.60% | 7.48% | -0.82% | 
2015 | 71.87% | 7.01% | -0.75% | 
2016 | 64.96% | 5.18% | -0.75% | 

Iをしたいと思いStacked Area Chartと同じタブの開発者ボタンに割り当てた以下のVBAをまとめましたが、SeriesCollection関数が定義されていないというエラーが表示されます。何か案は?理想的に積み上げ面グラフは独自のタブに常駐します:このコードを実行するとき

Sub TesNegs() 
    Dim n As Series 
    ActiveChart.PlotArea.Select 
    For Each n In ActiveChart.SeriesCollection 
     If Application.WorksheetFunction.Max(ActiveChart.SeriesCollection(n).Values) < 0 Then 
      n.AxisGroup = 2 
     End If 
    Next n 
End Sub 
+0

は、私たちはその原因に近い得るのを助けるために、チャートが選択されていますがよろしいですか?チャートを直接参照する必要があります。また、チャートにはすでに2番目のグループが設定されていますか? [そうでなければこれを見てください](http://www.mrexcel.com/forum/excel-questions/512624-adding-new-series-chart-using-visual-basic-applications.html) –

+0

こんにちは@JimmySmith - 理想的にはチャートは直接参照されますが、チャートが独自のタブ上に表示されたら、それを行う方法は完全にはわかりませんでした。グラフにはセカンダリ軸に何らかのシリーズが設定されていることがあり、セカンダリ軸に何も設定されていない場合があります。実行するたびにデータに依存します。ありがとう。 –

答えて

0
Dim n As Series 
ActiveChart.PlotArea.Select 

' set any negative series to the secondary axis 
For Each n In ActiveChart.SeriesCollection 
    Dim Max As Double 
    Max = 0 
    For Each Value In n.Values 
     If Value > Max Then 
      Max = Value 
     End If 
    Next Value 
    If Max = 0 Then 
     n.AxisGroup = 2 
    End If 
Next n 
関連する問題