- 帖子
- 9
- 主題
- 2
- 精華
- 0
- 積分
- 18
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Office 2010
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-12-12
- 最後登錄
- 2013-9-16
|
2#
發表於 2013-4-17 05:55
| 只看該作者
回復 1# ten999
參考以下我寫的這個範例的程式碼片段。
關鍵在於對每個數列的主、副座標 X軸 設定 .ReversePlotOrder = True。- With 台指口差圖.Chart
- '設定資料數列
- Set 台指口差_數列 = .SeriesCollection.NewSeries
- Set 台指價_數列 = .SeriesCollection.NewSeries
- With 台指價_數列 '設定台指期價格數列屬性
- .ChartType = xlLine '折線圖
- .AxisGroup = xlSecondary '數列繪製於副座軸上
- End With
-
- With 台指口差_數列 '設定台指口差數列屬性
- .ChartType = xlColumnClustered '群組長條圖
- .AxisGroup = xlPrimary '繪製於主座標上
- End With
-
- With .Axes(xlCategory) '設定座標X軸(時間軸)的屬性
- .ReversePlotOrder = True '反轉座標軸項目
- .CategoryType = xlCategoryScale
- .TickLabels.NumberFormatLocal = "hh:mm" '顯示 時:分
- .TickLabels.Orientation = 90 '標籤文字轉90度
- .TickLabelPosition = xlTickLabelPositionLow '座標軸置於下方
- End With
-
- '設定副座標X軸的屬性 (台指價數列 -> 時間座標)
- .HasAxis(xlCategory, xlSecondary) = True '必要設定為 True才會有副座標X軸物件
- With .Axes(xlCategory, xlSecondary)
- .ReversePlotOrder = True '反轉座標軸項目
- .MajorTickMark = xlNone 'hides secondary axis
- .TickLabelPosition = xlNone
- End With
-
- '設定副座標Y軸的屬性 (台指成交價)
- With .Axes(xlValue, xlSecondary)
- .TickLabelPosition = xlTickLabelPositionLow
- .TickLabels.NumberFormatLocal = "####"
- '.MinimumScale = Round(Application.Min(rng_台指價) * 0.9975, 1) 'Y軸下限
- '.MaximumScale = Round(Application.Max(rng_台指價) * 1.0025, 1) 'Y軸上限
- End With
複製代碼 |
|