- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
7#
發表於 2013-6-15 07:52
| 只看該作者
本帖最後由 c_c_lai 於 2013-6-15 07:54 編輯
回復 1# lin_6219
看了你數日的討論成果,還是給你個提示吧,要加油呦!
思考問題要多方的驗證及觀察,以期能切入到真正的問題核心。
觸發執行畫動態的圖表:- Option Explicit
- Dim timerEnabled As Boolean ' 判定開啟本工作表單的時段是否為開盤前啟動。
- Private Sub Workbook_Open()
- KChartWithVolume ' 以你自己的 K 圖做為例證
- ' 每逢星期六、日 除外, 自動啟動計時器
- If Weekday(Date, 2) <= 5 Then Call timerStart
- End Sub
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- On Error Resume Next
- Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.inProcess", , False
- Me.Save
- End Sub
- Sub timerStart()
- If timerEnabled Then
- ' 第二次(含)以後均以設定之 "間隔時段" 來處理執行序的作業。 (本例以每五分鐘執行一次)
- Application.OnTime (Now + TimeValue("00:05:00")), "ThisWorkbook.inProcess"
- Else
- timerEnabled = True
-
- If (TimeValue(Now) <= TimeValue("08:45:00")) Then
- Application.OnTime (TimeValue("08:45:00")), "ThisWorkbook.inProcess"
- Else
- ' 系統剛連上 DDE 至資料匯入Excel工作表單,須有一個緩衝時段,
- ' 這時如果馬上去抓取DDE資料,會有型態不符的錯誤訊息產生,並中斷執行序的作業。
- Application.OnTime (Now + TimeValue("00:00:05")), "ThisWorkbook.inProcess"
- End If
- End If
- End Sub
- Private Sub inProcess()
- On Error Resume Next
- If (TimeValue(Now) < TimeValue("08:45:00") Or TimeValue(Now) > TimeValue("13:46:01")) Then Exit Sub
-
- ' 盤中處理,將資料匯入寫入工作表單內儲存。
- With Sheets("主畫面")
- ' . . . . .
- ' . . . . . (寫入DDE匯入之相關資料))
- ' . . . . .
- End With
-
- Call getKLastMove() ' 觸發執行畫動態的圖表
- Call timerStart
- End Sub
- Sub getKLastMove()
- Dim totalRows As Long
-
- With Worksheets("主畫面")
- .Select
- totalRows = Worksheets("繪圖資料").Range("A" & .Rows.Count).End(xlUp).Row
- ActiveSheet.ChartObjects.Select
- With ActiveChart
- .SetSourceData Source:=Range("繪圖資料!$A$2:繪圖資料!$E$" & CStr(totalRows) & ", 繪圖資料!$G$2:繪圖資料!$G$" & CStr(totalRows) & _
- ", 繪圖資料!$F$2:繪圖資料!$F$" & CStr(totalRows))
- .SeriesCollection(1).Name = "=繪圖資料!$B$1" ' 開盤價
- .SeriesCollection(2).Name = "=繪圖資料!$C$1" ' 最高價
- .SeriesCollection(3).Name = "=繪圖資料!$D$1" ' 最低價
- .SeriesCollection(4).Name = "=繪圖資料!$E$1" ' 收盤價 (成交價)
- .SeriesCollection(5).Name = "=繪圖資料!$G$1" ' 移動平均線
- .SeriesCollection(5).Name = "成交量" ' 成交金額
- End With
- End With
- End Sub
- Sub KChartWithVolume() ' K線圖與成交量圖放在同一圖表
- ' . . . . .
- ' . . . . . (K線圖與成交量圖)
- ' . . . . .
- End Sub
複製代碼 多跟學校教授及同學們相互請益。 |
|