返回列表 上一主題 發帖

[發問] 如何在股價圖下方應用 VBA 增列一拉霸?

[發問] 如何在股價圖下方應用 VBA 增列一拉霸?

請教諸位先進,如何能在股價圖下方 (如附圖) 應用 VBA 語法來增列一拉霸 (ScrollBar)?
,先前 GBKEE 版大有個範本給我,但是拿來應用在此處卻不成功,
光是  .ScrollBar1.Min = 1  的宣告就無疾而終,更何況接下去了,
要怪只能怪自個兒功力不行!  附上檔案,謝謝諸位先進指導!

股票圖表與拉霸.rar (150.33 KB)

回復 2# f3202
謝謝您!
因為我的每張圖表都是動態產生的,所以我才想在每個圖表下方均各自動態配置一組拉霸,而非靜態(預先就已經產生)的,
不過您提共的網站內容非常的棒,謝謝您的分享!

TOP

回復 4# alexliou
Alex 兄,
許久沒聯絡了,謝謝您的分享,受益良多,
裡頭�埵酗ˋ貜熙B裡方法,蠻值得探討的,
這也是我近月來開始接觸 Excel 及 VBA 很棒的臨床實驗,
在此言謝了!
(請教您'長均線'是回溯多久,您是怎麼處裡數據的?)

TOP

回復 5# alexliou
我把 DataLabel 小改了一下,效果還不錯,請參考:
  1.             If .DataLabel.Text = "多單平倉" Or .DataLabel.Text = "賣出空單" Then
  2.                 .DataLabel.Text = .DataLabel.Text & Chr(10) & Format(Cells(i, 5).Value, "###0")      ' ********* 小改了一下 **********
  3.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerStyle = xlMarkerStyleStar   
  4.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerSize = 10
  5.                 .DataLabel.position = XlDataLabelPosition.xlLabelPositionBelow
  6.             ElseIf .DataLabel.Text = "空單平倉" Or .DataLabel.Text = "買進多單" Then
  7.                 .DataLabel.Text = .DataLabel.Text & Chr(10) & Format(Cells(i, 5).Value, "###0")      ' ********* 小改了一下 **********
  8.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerStyle = xlMarkerStyleTriangle
  9.                 ActiveChart.SeriesCollection(4).Points(i - StartKBarRow + 1).MarkerSize = 8
  10.                 .DataLabel.position = XlDataLabelPosition.xlLabelPositionAbove
  11.             End If
複製代碼

TOP

回復 8# alexliou
以往在職場時常使用 PostgreSQL以及MS SQL,說真格的我還沒用過Acess,有空時我會來試試它,
目前我是將資料直接存放在Excel表單內做測試。藉由練習以了解 VBA 及 Excel 的資料處理與應用。
謝謝您的幫助,今後如有不解之處還需再來打擾您了!

TOP

回復 8# alexliou
請問由 VBA 產生的 ScrollBar 的 Event Handler 如何命名? 例如:Private Sub ScrollBar1_Change()  ~  End Sub
但是加入 ScrollBar1_Change() 後並未起任何作用? 應該要使用 Private Sub ScrollBar???_Change()?
附上測試檔案,謝謝指教!

請教拉霸事件產生器.rar (10.03 KB)

TOP

回復 11# GBKEE
回復 12# alexliou
謝謝兩位的幫忙,這兩天我上了國外網站收尋資料,找到了一篇還不錯,如下:
  1. Sheet1.ScrollBars.Add(624763.5, 4271616, 5095730.25, 189166.5).Select

  2. With Selection
  3.     .Value = 60
  4.     .Min = SMin
  5.     .Max = SMax
  6.     .SmallChange = 1
  7.     .LargeChange = 1
  8.     .LinkedCell = "Sheet1!$O$5"
  9.     .Display3DShading = True
  10.      
  11.     With .ShapeRange
  12.         .Left = 0
  13.         .Width = 680.32
  14.         .Top = 0
  15.         .Height = 15
  16.     End With
  17.      
  18.     .OnAction = "ScrollBarChange"
  19. End With
複製代碼
但是我卻鑽進了死胡同  .OnAction = "ScrollBarChange"  老是告訴我無法使用此巨集,
百思不解之下才來求援,結果是 Alex兄叫我使用 .OnAction = "工作表1.ScrollBarChange"  ,
便迎刃而解了。 就差別在必須加上 "工作表1."字樣才能正常運作。謝謝您們!
另外再請教,在 ThisWorkbook 上頭已經宣告了 Public 型態,理論上它應屬於 Global,
為何在"工作表1"內卻無法取得該等變數內容值呢?

TOP

回復 14# alexliou
我會再實地演練多次以瞭解它們佊此間互動關聯的, 謝謝您!
依您所言,您所有資料都直接由DDE匯入到Acess,那線上您只看券商的圖表,
Excel 上的統計圖表只是來當作歷史資料參考依據了, 或是兩者皆儲存,同步參考?

TOP

本帖最後由 c_c_lai 於 2012-5-21 10:15 編輯

回復 16# alexliou
目前我的 ScrollBar 是由VBA動態產生的,亦即當進入(啟動) Excel表單,該系統即自動產生一ScrollBar,
Sheets("統計圖表").ScrollBars.Add(Cells(20, 1).Left, Cells(20, 1).Top, 879, Rows(1).Height).Select
當離開Excel時,又自動將它刪除掉。
我的提問是:
我想能將該動態產生的ScrollBar加上背景或者是前景顏色,如此比較顯著,否者使用者會看不清ScrollBar在哪裡,
因為VBA產生的ScrollBar的顏色是Default值,不知道可不可以這麼做?   又,               
.InvertIfNegative = True
.InvertColor = RGB(255, 124, 128)                     
只能應用在柱狀圖,我在想如果是 xlLine 型態時,當表列數值為負值時,有否將其顯示之顏色更變成橘紅色,
正值時則選擇其它顏色,不知能否突破?
謝謝指導!

TOP

回復 18# alexliou
Alex兄,
謝謝您,我試著在程式執行階段利用VBA Code建置它,它不僅充滿著 Tricky, 而且還 Difficult to manage,
所以我還是做個乖寶寶使用原本的 ScrollBar 比較親和性也不會作怪,雖然沒有 BackColor & ForeColor。
Anyway 還是要向您說聲謝謝囉!

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題