Board logo

標題: [發問] 請教兩個序列在一張圖表內的反轉問題 [打印本頁]

作者: gnimnek168    時間: 2013-4-16 21:24     標題: 請教兩個序列在一張圖表內的反轉問題

我利用 Excel VBA 創建一個圖表,其內並有兩個序列 (series)物件。資料的來源係從每五分鐘間隔所紀錄的分時資料 (紀錄於儲存格,以列為每一筆單位),紀錄的順序為最晚時間紀錄者排列在上。

序列1設定於主座標軸,反映的是籌碼量變化情形(利用堆積圖);序列2設定於富座標軸,反映的是價格變化情形(折線圖)。X軸為時間、Y軸左側為價格;右側為籌碼數量。

關於主座標X軸的屬性設定如下:
  1.         
  2. With ActiveChart..Axes(xlCategory, xlPrimary)     '設定座標X軸(時間軸)的屬性
  3.             .ReversePlotOrder = True                    '反轉座標軸項目
  4.             .CategoryType = xlCategoryScale
  5.             .TickLabels.NumberFormatLocal = "hh:mm"     '顯示 時:分
  6.             .TickLabels.Orientation = 90                '標籤文字轉90度
  7.             .TickLabelPosition = xlTickLabelPositionLow '座標軸置於下方
  8. End With
複製代碼
這沒有問題,圖形也確實可以呈現籌碼量的反轉排列。但價格序列卻無法呈現反轉排列,也就是如 13:30 的價格排列在X軸最左方、09:00的價格排列在X軸最右方。

如果想要設定下列這樣的屬性:
  1.         '設定副座標X軸的屬性 (成交價)
  2.         With ActiveChart.Axes(xlCategory, xlSecondary)
  3.             .ReversePlotOrder = True                    '反轉座標軸項目
  4.         End With
複製代碼
執行卻會出現錯誤訊息:'Axes' 方法('_Chart' 物件)失敗。

請問該如何修改 VBA 程式碼或設定才能讓序列二的資料也能同步反轉?

P.S. 如法上傳圖表?
作者: gnimnek168    時間: 2013-4-17 00:42

回復 1# gnimnek168

總算找到答案了! 自問自答一下:副座標X軸似乎不像Y軸一樣會自動產出該物件,所以必須透過  .HasAxis() 方法來設定,參考如下:
  1.         .HasAxis(xlCategory, xlSecondary) = True
  2.         With .Axes(xlCategory, xlSecondary)
  3.             .ReversePlotOrder = True                    '反轉座標軸項目
  4.         End With
複製代碼





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