網路城邦
上一篇 回創作列表 下一篇   字體:
[Excel VBA] 記錄 DDE 傳入的 (每個) tick
2019/04/08 23:36:54瀏覽6305|回應10|推薦3

應網友要求,清明節連續假期抽出一點時間,寫了一個記錄 DDE 傳入的每個 tick。主要原理是利用 workbook 的 worksheet calculate 事件(event),也許未必能抓到每個 tick。今天在盤中用 QXLite 的 DDE 測了一下,然後簡單地公開這個程式,需要此程式檔案的朋友們,可以來信向我要xls檔。

來信主旨請寫明:「我要抄錄DDE_OnCalculate.v1.0

[2019-June-4] 本文發表後立即有幾位朋友來信索取xls,發現有的時候會抄錄到完全沒有變動的資料,因此我做了抄錄 DDE_OnCalculate.v1.2 版,在執行抄錄動作的 procRecord() 裡面增加了一些邏輯, 比較這一次(被觸發執行)所取得的值是否跟上次記錄下來的完全一樣,若完全一樣就不做抄錄。底下我會將 v1.0 和 v1.2 的procRecord() 程式碼並列,請參見程式裡的註解 (remark)。現在(自2019-April-22起)來索取此程式我都會給 v1.2 版,需要v1.0版的朋友請自行將那一段邏輯判斷程式碼刪掉即得。

[2019-June-11] 使用抄錄 DDE_OnCalculate 後,有些朋友來信希望可以設定何時開始抄錄、何時停止抄錄,於是我寫了一版,請參閱部落格另一篇文章:抄錄 DDE OnCalculate 之預約開關版

工作表

Control 工作表(控制頁):控制是否開始執行抄錄

 


DDE-Input工作表(資料頁):將看盤程式 DDE 帶入資料的儲存格放在此表


Record 工作表(記錄頁):資料頁得到的數值會被抄錄到此工作表


用法

把 QXLite 的 DDE 導入 "DDE-Input" 工作表 (資料頁),然後存檔。然後在盤中,而且 QXLite 正常啟動的狀態,按下 Control頁的「開始記錄」鈕DDE程式傳入的數值就會被VBA程式抄錄到Record工作表 (記錄頁裡面。

程式碼

ThisWorkbook : Workbook_Open():每當這個活頁簿檔案被開啟 (允許啟用巨集) 的時候,Excel 會執行這個副程式一次。因此,我們在這裡面設定公用變數的初值和Control 工作表的初值。

ThisWorkbook : Workbook_SheetCalculate()每當有任何一張工作表內容發生重新計算的時候,此副程式會被執行一次。引數 "sh" 會傳入發生重新計算的工作表,因此可以判斷是否為 DDE-Input 工作表。

Sheet1(Control) : CommandButton1_Click():當 Control 工作表上的那個按紐被按下時要執行此副程式裡面的程式碼, 此按鈕的作用是允許/不允許繼續執行抄錄的切換開關。

Module1 : procRecord():此副程式執行抄錄的工作,當Workbook_SheetCalculate() 要執行抄錄的工作時就會呼叫此副程式

公用變數

在 Module1 裡面有兩個公用變數, 存著副程式需要共用的值:

iRecToRow:  整數,下一次要抄錄的 Record 資料頁的哪一列?

bRecording: 邏輯值,目前是否允許抄錄?

※本文相關文章連結:

[Excel VBA] 固定間隔時間記錄DDE傳入的資料

[Excel VBA] 固定間隔時間記錄DDE傳入資料之「預約開關版」

抄錄 DDE OnCalculate 之預約開關版修改

[Excel VBA] 抄錄 DDE OnCalculate 之預約開關版

( 知識學習其他 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=WayCheng&aid=125388007

 回應文章

謝謝高手
2023/11/04 23:41
「我要抄錄DDE_OnCalculate.v1.2」
索取檔案, 感謝大大分享, 謝謝

charley40105@gmail.com

Sky
2022/09/10 16:04

「DDE_OnCalculate.v1.2 版 」

感謝大大分享!!謝謝

中秋節愉快

(sky_feng@yahoo.com.tw)(sky_feng@yahoo.com.tw)

Sky
2022/09/10 15:46
請問大大, 如何時每個tick跳動的值截取並進行統計呢? 例如即時成交明細中, 在DDE轉成excel後, 數字/tick會一直跳動, 想要將內盤與外盤成交, 分別乘上單量, 然後進行內外盤力道比對, 這樣如何操作呢? 謝謝.     (sky_feng@yahoo.com.tw)

ZYH
2022/06/11 20:40

我要抄錄DDE_OnCalculate.v1.2

感謝大大分享!!謝謝

(hzy801121@gmail.com)(hzy801121@gmail.com)

K
2021/03/26 15:54

DDE_OnCalculate.v1.2 版 

感謝大大分享!!謝謝

(kl608@hotmail.com)(kl608@hotmail.com)

小博
2021/02/28 20:28

我要抄錄DDE_OnCalculate.v1.0

感謝大大分享

(u179022@taipower.com.tw)

(u179022@taipower.com.tw)

howhow
2021/02/06 14:34

我要抄錄DDE_OnCalculate.v1.0

感謝大大分享!!謝謝

(howstyle666@gmail.com)

blue
2021/01/11 23:09

感謝大大分享 DDE_OnCalculate.v1.2 版

謝謝

(klcoast@gmail.com)

Arthur
2021/01/11 15:20

我要抄錄DDE_OnCalculate.v1.0

索取檔案, 謝謝分享。

(wildboy.arthur@gmail.com)

SL
2020/11/10 02:17

感謝大大提供好用軟體

方便跟大大索取

DDE_OnCalculate.v1.2 版 

非常感謝您的幫忙 謝謝

(ywang6785@gmail.com)