- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
32#
發表於 2013-5-16 10:27
| 只看該作者
<DDE工作表資料例>
<工作表事件區.程式碼>
Private Declare Function PlaceOrderVB Lib "TC_Excel_Addin.xll" (ByVal OrderInfo As String) As String
Option Explicit
Private Sub Worksheet_Calculate()
Dim tmpResult As String
Dim OrderInfo_1 As String
If Date Mod 7 - 1 > 5 Then Exit Sub '今天為〔周六.周日〕非交易日.跳出
If Time < TimeValue("08:00:00") Then Exit Sub '未到開盤.跳出
If Time > TimeValue("13:45:00") Then Exit Sub '已過收盤.跳出
If [D5] = "已送單" And [D6] = Date Then Exit Sub '今天已有送單記錄.跳出
If IsError([D4]) Then Exit Sub 'DDE未正確連結,或公式有誤.跳出
If Val([D4]) < 0 Then Exit Sub '未達目標價.跳出
On Error GoTo 901 '程式執行錯誤時,強制跳至901行,以回復事件觸發,並跳出
'-------------------------------------------
Application.EnableEvents = False
OrderInfo_1 = "" ' 裡面是個資, 下單的設定
tmpResult = PlaceOrderVB(OrderInfo_1)
PlaceOrderVB (OrderInfo_1)
[D5] = "已送單" '送單訊息
[D6] = Date '送單日期
[D7] = Time '送單時間
901: Application.EnableEvents = True
End Sub
<備註>
以工作表事件進行DDE動態監視,並不太好掌控,之前有寫過幾個範例,是以〔每秒〕遞迴主程式監視及記錄數據,
可至敝部落格,或網頁搜尋關鍵字〔准提部林 金千里 DDE〕參考相關下載檔(程式碼公開,且有註解),
個人並無操作股票及其它金融商品,也從未使用過DDE,僅憑揣摸寫程式,所以請自行套用,無法做私人的服務。
爾後若有時間.或許也在這論壇建個〔自動記錄DDE〕題分享!
以上純因版主一句〔VBA好難〕,應緣而發! 祝 操作順利 |
|