- 帖子
- 28
- 主題
- 4
- 精華
- 0
- 積分
- 54
- 點名
- 0
- 作業系統
- windows xp pro
- 軟體版本
- office 2007
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台南市
- 註冊時間
- 2010-5-5
- 最後登錄
- 2016-6-8
|
4#
發表於 2010-5-13 18:09
| 只看該作者
Hsieh板大你好
以前我在學校時所教的 一開始必先要開啟DDE的股票軟體
我以日盛為例 所以要先開啟他裡面的一個 Excel DDE 之後再開啟 EXCEL 才能啟動
然後我們會在EXCEL 一開啟時 check 是否連線成功
之後再寫入下面程式
Sub 載入日盛DDE()
With ThisWorkbook.Worksheets("外部資料")
.Cells.Clear
'寫入時間
.Range("B1").Formula = "=DDEEXCEL|FUTURETXF" & NearMonth & NearYear & "!時間"
end with
至於DDEEXCEL|FUTURETXF" & NearMonth & NearYear & "!時間 是看個DDE軟體定義的
以日盛為例 當開啟EXCEL DDE 把他拖曳到 EXCEL上時 就會出現上面 之後裡面的年月再設變數
如此 至於要擷取他變動的資料 則是使用DDE傳送資料到EXCEL 觸發的calculate 事件特性
去判斷新傳來的值與舊的值是否有相同 如果不相同就記錄
Dim NewVolume As Long
Dim nRow As Long
With ThisWorkbook.Worksheets("台指期DDE")
If IsNumeric(.Range("A1")) = True Then
NewVolume = .Range("A1")
If NewVolume <> TXoldVolume Then
'將即時價差及台指期即時成交價逐行寫入各欄
With ThisWorkbook.Worksheets("繪圖資料")
nRow = .Range("B65536").End(xlUp).Row
If nRow = 1 And .Range("B1") = "" Then
.Cells(1, 1) = Time
.Cells(1, 2) = ThisWorkbook.Worksheets("外部資料").Range("C3") '台指期價格
With ThisWorkbook.Worksheets("外部資料")
If IsNumeric(.Range("C3")) And IsNumeric(.Range("C11")) And _
IsNumeric(.Range("C19")) Then
ThisWorkbook.Worksheets("繪圖資料").Cells(1, 5) = _
CalSpread(.Range("C11"), .Range("C19"), .Range("C3")) '目前價差
End If
End With |
|