[Excel VBA] 記錄 DDE 傳入的 (每個) tick - 返回 最初的純真性情 - udn部落格
返回 最初的純真性情
作家:ThisIsTheWay
文章分類
    Top
    [Excel VBA] 記錄 DDE 傳入的 (每個) tick
    2019/04/08 23:36:54
    瀏覽:7059
    迴響:11
    推薦:3
    引用0
    應網友要求,清明節連續假期抽出一點時間,寫了一個記錄 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 之預約開關版

    回應
    迴響(11) :
    11樓. 小呆瓜
    2024/05/13 17:13

    您好:

    麻煩大大給我「抄錄DDE_OnCalculate.v1.2」
    檔案, 感謝大大分享, 謝謝

    (maxlea3836@yahoo.com.tw)
    10樓. 謝謝高手
    2023/11/04 23:41
    「我要抄錄DDE_OnCalculate.v1.2」
    索取檔案, 感謝大大分享, 謝謝

    charley40105@gmail.com
    9樓. Sky
    2022/09/10 16:04

    「DDE_OnCalculate.v1.2 版 」

    感謝大大分享!!謝謝

    中秋節愉快

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

    我要抄錄DDE_OnCalculate.v1.2

    感謝大大分享!!謝謝

    (hzy801121@gmail.com)(hzy801121@gmail.com)
    6樓. K
    2021/03/26 15:54

    DDE_OnCalculate.v1.2 版 

    感謝大大分享!!謝謝

    (kl608@hotmail.com)(kl608@hotmail.com)
    5樓. 小博
    2021/02/28 20:28

    我要抄錄DDE_OnCalculate.v1.0

    感謝大大分享

    (u179022@taipower.com.tw)

    (u179022@taipower.com.tw)
    4樓. howhow
    2021/02/06 14:34

    我要抄錄DDE_OnCalculate.v1.0

    感謝大大分享!!謝謝

    (howstyle666@gmail.com)
    3樓. blue
    2021/01/11 23:09

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

    謝謝

    (klcoast@gmail.com)
    2樓. Arthur
    2021/01/11 15:20

    我要抄錄DDE_OnCalculate.v1.0

    索取檔案, 謝謝分享。

    (wildboy.arthur@gmail.com)
    發表迴響

    會員登入