返回列表 上一主題 發帖

[發問] RTD抓TICK,如何設定當總量變化時在抓取

本帖最後由 GBKEE 於 2017-5-20 12:26 編輯

回復 1# fansofcheer0987
工作表儲存格的值,字串有變動.     可觸發的事件 :Worksheet_Change
工作表儲存格為公式傳回值的變動.  可觸發的事件 :Worksheet_Calculate

'附檔上工作表(b)儲存格RTD公式有多個,Worksheet_Calculate無法明確指出是哪一個RTD公式在變動

'請在所有儲存格沒有公式的工作表上的A1,寫上總量的RTD公式
'=RTD("xqrtd.rtdserverkgiap",,"FIMTX*1.TF-TotalVolume")
  1. Private Sub Worksheet_Calculate() '只有總量RTD公式,的工作表模組.
  2.    
  3.     If Not IsError([a1]) Then                           '未開盤時 RTD公式傳回 "N/A" 為錯誤值
  4.         If [a1] < 0 And IsNumeric([a1]) Then     '開盤後,總量需有 >0 的數字
  5.                 '執行程式碼  '**抓取你要的資料**
  6.         End If
  7.    End If
  8.    
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# fansofcheer0987
附檔 Private Sub Worksheet_Calculate()在Module3是一般模組不是工作表模組.
當然沒做用
附檔 工作表a,可能有多筆要記錄
修改如下
  1. Private Sub Worksheet_Calculate() '工作表1(a)模組的重算事件
  2.     Dim i As Long, Sht2 As Worksheet
  3.     Set Sht2 = Sheets("b")
  4.     For i = 2 To Cells(Rows.Count, "h").End(xlUp).Row              '多筆要記錄
  5.         If Not IsError(Range("h" & i)) Then                        '未開盤時 RTD公式傳回 "N/A" 為錯誤值
  6.             If Range("h" & i) > Cells(i, Columns.Count) And IsNumeric(Range("h" & i)) Then      '開盤後,總量需有 >0 的數字
  7.             '** 輔助欄: Cells(i, Columns.Count)** 工作表最右一欄,記錄上一次成交總量
  8.                
  9.                 '執行程式碼  '**抓取你要的資料**
  10.                 Cells(i, Columns.Count) = Range("h" & i)   '記錄此次成交總量
  11.                 Sht2.Range("A2").EntireRow.Insert
  12.                 Sht2.Range("A2:J2").Value = Range("A" & i & ":J" & i).Value
  13.             Else
  14.                 Cells(i, Columns.Count) = ""  '**成交總量歸零
  15.             End If
  16.         Else
  17.             Cells(i, Columns.Count) = ""  '**成交總量歸零
  18.         End If
  19.     Next
  20. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 君子為目標,小人為目的。
返回列表 上一主題