Board logo

標題: 關於變動複寫的問題,請教版上大大 [打印本頁]

作者: 藍天麗池    時間: 2016-10-4 18:20     標題: 關於變動複寫的問題,請教版上大大

[attach]25441[/attach]
請教版上大大,附件裡面有股價,如果我要寫一個當指定條件變動將目標格複寫的程式要如何寫呢??
例如:G2為台積電的單量,如果條件設定為"時間不同且單量大於50",就將F2-IJ寫到M2-Q2,下次如果再有符合條件的變動就繼續將資料複寫到M2-Q2...以此類推,因為每個個股的單量變動時間不一樣,所以可能需要個別判定,可以請教版上大大此程式要如何寫嗎??
作者: 藍天麗池    時間: 2016-10-5 15:26

回復 1# 藍天麗池


    G大,時間變動不一定,資料由DDE傳送進來
小弟的想法是先比對時間例如8:45:03,下一次時間在8:45:20秒符合單量大於50就寫入,這樣寫可以嗎??
作者: GBKEE    時間: 2016-10-6 08:44

回復 2# 藍天麗池


附檔為XLSX沒有巨集的活頁簿,需存為XLSM為有巨集的活頁簿

試試看
  1. Option Explicit
  2. Private Sub Worksheet_Calculate() '工作表的重算事件,為工作表的預設事件
  3.     Dim i As Integer
  4.     If Time >= #9:00:00 AM# And Time <= #1:30:00 PM# Then  '股市交易時間內
  5.         i = 2
  6.        '*******************************************
  7.         '你附檔沒有DEE公式, E到L欄應為DEE公式,才可用到此工作表的重算事件
  8.         '[F:U] : F到U欄  , M欄 為 總量的DEE( 你附檔沒有,請加上做為不同時間點的判斷 )

  9.        '*******************************************
  10.         Do While [F:U].Rows(i).Cells(1) > 0
  11.             With [F:U].Rows(i)
  12.                 If .Cells(2) > 50 And .Cells(8) > 0 Then '.Cells(8) > 0 總量:單量的加總
  13.                     If .Cells(16) = 0 Or .Cells(8) > .Cells(16) Then
  14.                             '.Cells(16) = 0 : '總量尚未紀錄
  15.                             '.Cells(8) >.Cells(16) :總量 > 之前所記錄的總量
  16.                         .Cells(9).Resize(, 8) = .Cells(1).Resize(, 8).Value
  17.                     End If
  18.                 End If
  19.             End With
  20.             i = i + 1
  21.         Loop
  22.     End If
  23. End Sub
複製代碼

作者: 藍天麗池    時間: 2016-10-6 19:54

回復 3# GBKEE

G大感謝,我試試看




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