標題:
VBA的 DDE 函數 抓取
[打印本頁]
作者:
Scott090
時間:
2017-9-22 14:23
標題:
VBA的 DDE 函數 抓取
本帖最後由 Scott090 於 2017-9-22 14:26 編輯
懇請協助如何正確取得資料
看盤軟體打開,儲存格放入 DDE公式是可以取得資料的。
希望用DDE函數來做這一件事,但沒能如願,
如下的程式:
1. Application.DDEInitiate("EWinner", "RQ") 可以打開DDE通道
2. returnList = Application.DDERequest(ChannelNum, "'100000.Open'") 透過通道送出 item '100000.Open'
就無法取得資料; returnList 內是字串 "錯誤 2023"
''DDE格式:ServerName|Topic!Item
''儲存格內公式
''開盤價:=EWinner|RQ!'100000.open'
''最高價:=EWinner|RQ!'100000.high'
''最低價:=EWinner|RQ!'100000.low'
''成交價:=EWinner|RQ!'100000.price'
''
Sub DDELinkTest()
Dim ChannelNum As Long
Dim i%, j%
Dim returnList
'建立DDE連結通道
'DDEInitiate(AppName, Topic)
Do
ChannelNum = Application.DDEInitiate("EWinner", "RQ") '點金靈的AppName:EWinner、Topic:RQ
i = i + 1
Loop While i < 50 And ChannelNum = 0 '確認已建立通道
If ChannelNum <> 0 Then
'DDERequest(channel, item), item = stockNumber 100000.Open 測試大盤 100000 開盤價
' 儲存格內公式 "=EWinner|RQ!'100000.open'"
returnList = Application.DDERequest(ChannelNum, "'100000.Open'")
''
On Error GoTo ErrorHand
'取得該項目的資料內容
For j = LBound(returnList) To UBound(returnList)
ActiveSheet.Cells(75, i + 1).Formula = returnList(j)
Next
End If
ErrorHand:
On Error GoTo 0
'關閉DDE連結通道
Application.DDETerminate ChannelNum
End Sub
複製代碼
作者:
kingmvp
時間:
2017-10-25 16:09
本帖最後由 kingmvp 於 2017-10-25 16:11 編輯
回復
1#
Scott090
Scott090大你好....
第24行---> returnList = Application.DDERequest(ChannelNum, "'100000.Open'")
把單引號拿掉看看....如下.....
returnList = Application.DDERequest(ChannelNum, "100000.Open")
另外....如果真的不行....不妨先試試小弟有一帖發文裡附的檔案..用它再來更改Scott090大附的程式碼......
http://forum.twbts.com/viewthread.php?tid=20214
but....小弟附的那個檔案....它抓的到data....但....會漏筆....(小弟也有發文請教....不過尚未有前輩指點....T__T)
作者:
Scott090
時間:
2017-10-26 21:56
回復
2#
kingmvp
謝謝kingmvp兄的回應
Application.DDERequest(ChannelNum, "'100000.Open'")
改成 Application.DDERequest(ChannelNum, "100000.Open") 還是不行 "錯誤 2023"
不知是否 Ewinner這個看盤程式的溝通問題;不過用相同的格式公式直接放到 儲存格內是可以的
作者:
kingmvp
時間:
2017-10-27 08:23
回復
3#
Scott090
Scott090大你好....要判定是否為Ewinner溝通問題....直接試試小弟上面提的檔案(壓縮檔裡的excel)...把它替換成Ewinne的連結.....
如果一樣有問題的話....那就確定是Ewinner代碼沒弄好....這樣比較快知道是哪裡出了問題....
以上提供給Scott090大參考.....
作者:
Scott090
時間:
2017-10-30 17:12
回復
4#
kingmvp
從新如所建議,還是不能用
假如有誰剛好也是用點金靈的話也可試試看
謝謝
作者:
jackyq
時間:
2017-11-4 15:01
是 Application.DDERequest 自身的問題
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)