Board logo

標題: 圖表日期座標類別次序反轉問題 [打印本頁]

作者: ten999    時間: 2013-4-5 11:15     標題: 圖表日期座標類別次序反轉問題

請教各位先進:
參考網路資料想繪製股票圖與成交量相關資料,利用vba自動執行
問題點:
成交量日期座標與股票k線資料日期座標卻是相反(無法日期與k線 成交量相互配合)
利用日期座標類別次序反轉資料,只能反轉一個
請問各位先進如何處理
謝謝!
作者: gnimnek168    時間: 2013-4-17 05:55

回復 1# ten999

參考以下我寫的這個範例的程式碼片段。
關鍵在於對每個數列的主、副座標 X軸 設定  .ReversePlotOrder = True。
  1.     With 台指口差圖.Chart
  2.         '設定資料數列
  3.         Set 台指口差_數列 = .SeriesCollection.NewSeries
  4.         Set 台指價_數列 = .SeriesCollection.NewSeries               
  5.         With 台指價_數列        '設定台指期價格數列屬性
  6.             .ChartType = xlLine         '折線圖
  7.             .AxisGroup = xlSecondary    '數列繪製於副座軸上
  8.         End With
  9.         
  10.         With 台指口差_數列      '設定台指口差數列屬性
  11.             .ChartType = xlColumnClustered      '群組長條圖
  12.             .AxisGroup = xlPrimary              '繪製於主座標上
  13.         End With
  14.                               
  15.         With .Axes(xlCategory)     '設定座標X軸(時間軸)的屬性
  16.             .ReversePlotOrder = True                    '反轉座標軸項目
  17.             .CategoryType = xlCategoryScale
  18.             .TickLabels.NumberFormatLocal = "hh:mm"     '顯示 時:分
  19.             .TickLabels.Orientation = 90                '標籤文字轉90度
  20.             .TickLabelPosition = xlTickLabelPositionLow '座標軸置於下方
  21.         End With
  22.         
  23.         '設定副座標X軸的屬性 (台指價數列 -> 時間座標)
  24.         .HasAxis(xlCategory, xlSecondary) = True        '必要設定為 True才會有副座標X軸物件
  25.         With .Axes(xlCategory, xlSecondary)
  26.             .ReversePlotOrder = True                    '反轉座標軸項目
  27.             .MajorTickMark = xlNone                     'hides secondary axis
  28.             .TickLabelPosition = xlNone
  29.         End With
  30.         
  31.         '設定副座標Y軸的屬性 (台指成交價)
  32.         With .Axes(xlValue, xlSecondary)
  33.            .TickLabelPosition = xlTickLabelPositionLow
  34.            .TickLabels.NumberFormatLocal = "####"
  35.             '.MinimumScale = Round(Application.Min(rng_台指價) * 0.9975, 1)      'Y軸下限
  36.             '.MaximumScale = Round(Application.Max(rng_台指價) * 1.0025, 1)      'Y軸上限
  37.         End With
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)