Board logo

標題: [發問] 利用Textbox LinkedCell 去記錄tick總量變化 [打印本頁]

作者: vic    時間: 2016-5-3 21:43     標題: 利用Textbox LinkedCell 去記錄tick總量變化

有爬文到可以利用Textbox 的 onchange事件去記錄一直變化的tick值
如果想法很簡單 A1會連結到DDE的交易總量(一直跳動)
插入一個Textbox 去LinkedCell A1
可以A1一變動 就記錄到A5,A6,A7...依序一直記錄下去嗎?
[attach]24150[/attach]
作者: c_c_lai    時間: 2016-5-4 08:16

本帖最後由 c_c_lai 於 2016-5-4 08:17 編輯

回復 1# vic
我寫了一支測試範例,能同時來觀測 A1 觸發
以及連結 TextBox1 數據變化的實際狀態。
換句話說,在開盤後啟動此測試檔來進行
觀察 DDE 實務上匯入資料時,它究竟是否會
觸發 『工作表1』 的 「Worksheet_Change()」
事件 (Event),同時是否同步帶動 連結 A1 欄位的
(LinkedCell) 的 TextBox1 之「TextBox1_Change()」,
進而能從 [H1]、[I1] 兩個欄位中觀察到其數據變動之
「增加值」是否同步。如果僅有 [I1] 欄的數據有所增加,
而 [H1] 欄的數據無任何「增加值」,此即表示 DDE
資料之匯入數據值的變化並不會牽動「Worksheet_Change()」
A1 欄位變化的事件 (Event)。
[attach]24152[/attach]
決果值如何煩請告知,以便進一步知悉該如何進行,謝謝!
PS: 因我目前沒有使用券商軟體。
[attach]24153[/attach]

作者: c_c_lai    時間: 2016-5-4 08:20

回復 1# vic
『工作表1』之程式碼:
  1. Private Sub TextBox1_Change()
  2.     [I1] = [I1] + 1
  3. End Sub

  4. Private Sub Worksheet_Change(ByVal target As Range)
  5.     If target.Address = "$A$1" Then
  6.         [H1] = [H1] + 1
  7.     End If
  8. End Sub
複製代碼

作者: vic    時間: 2016-5-4 08:57

你好 感謝您的協助
目前只有I1的值會一直加總上去
可是H1一直都沒有值
[attach]24155[/attach]




回復 2# c_c_lai
作者: c_c_lai    時間: 2016-5-4 16:29

回復 4# vic
如此看來,DDE 資料之匯入確實不會觸發
Worksheet_Change() (誠如 GBKEE 大大所言),
所以只能藉由像本範例之 TextBox1,透過它來
得知數據之變動。謝謝你的實務測試!
作者: c_c_lai    時間: 2016-5-4 17:03

你好 感謝您的協助
目前只有I1的值會一直加總上去
可是H1一直都沒有值





回復  c_c_lai
vic 發表於 2016-5-4 08:57

由圖示看出已經跑了  584 Ticks ,
這樣便能同步寫入每一 Tick 的數據資料了。
譬如:
[attach]24158[/attach]
  1. Private Sub TextBox1_Change()
  2.     Dim rng As Range
  3.    
  4.     Set rng = [A65535].End(xlUp).Offset(1)
  5.     rng.Resize(, 8) = [A1:H1].Value
  6. End Sub
複製代碼

作者: c_c_lai    時間: 2016-5-5 03:54

回復 4# vic
考慮 Ticks 數據量大,可修改成:
  1. Private Sub TextBox1_Change()
  2.     Dim Rng As Range
  3.    
  4.     '  [I1] = [I1] + 1
  5.     '  Set Rng = [A65535].End(xlUp).Offset(1)
  6.     Set Rng = Range("A" & Rows.Count).End(xlUp).Offset(1)     ' Rows.Count =1048576 : Long
  7.     Rng.Resize(, 8) = [A1:H1].Value
  8. End Sub
複製代碼

作者: vic    時間: 2016-5-5 11:07

非常感謝 我再試著改成巨集的形式來執行試試~


回復 8# c_c_lai




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)