返回列表 上一主題 發帖

關於資料比對的寫法

關於資料比對的寫法

資料暫存.rar (54.84 KB)
如果要寫兩個功能1.總量變動就將股價寫入E列
                                2.下次總量再變動時再將E列的資料寫入F列,作這一秒(E列)跟前一秒(F列)的股價作比對
例如:台積電 9:00:00 成交價是100元,先將100寫入E2,之後9:00:10 成交價是101,同時執行將前一秒的100元寫入F2,這一秒的101寫入E2,一直持續下去要如何寫成VBA呢??
還請版上大大幫幫忙,謝謝

回復 1# 藍天麗池
你是以"總量變動" 抑或是 "成交價" 做為比對標準?
請再仔細描述說明,謝謝!

TOP

回復 2# c_c_lai


    總量變動就寫入股價,以總量變動為條件來對比股價
c大感謝

TOP

回復 3# 藍天麗池
ThisWorkbook:
  1. Private Sub Workbook_Open()
  2.     Dim rng As Variant
  3.    
  4.     With Sheets(1)
  5.         For Each rng In Range(.[D2], .[D2].End(xlDown))
  6.             rng.Offset(, 26) = IIf(IsNumeric(rng), rng, 0)
  7.             rng.Offset(, 1) = IIf(IsNumeric(rng.Offset(, -1)), rng.Offset(, -1), 0)
  8.         Next
  9.     End With
  10. End Sub
複製代碼
Sheet1:
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Left(Target.Address, 2) = "$D" And IsNumeric(Target) Then
  3.         If Target.Offset(, 26).Value <> Target.Value Then
  4.             Target.Offset(, 26) = Target
  5.             Target.Offset(, 2) = Target.Offset(, 1)
  6.             Target.Offset(, 1) = IIf(IsNumeric(Target.Offset(, -1)), Target.Offset(, -1), 0)
  7.         End If
  8.     End If
  9. End Sub
複製代碼
資料暫存.rar (61.05 KB)

TOP

回復 4# c_c_lai
C大,目前手動測試OK,明天開盤試試看
跟C大請教一下,程式碼裡面的26是甚麼阿,簡易的我還看得懂,但是無法理解裡面為什麼會有26?

TOP

回復 5# 藍天麗池

TOP

回復 6# c_c_lai


    哈哈,這樣我了解了,謝謝c大耐心解釋

TOP

回復 6# c_c_lai


   c大,跟你報告一下測試結果,測試後無法執行,但我用手動輸入數字卻可行,
我在想會不會是程式對於dde的數值判定有問題呢?

TOP

這跟我預期的一樣,因為 DDE  的匯入資料之變動
確定是不會觸發 Worksheet_Change() 的。

TOP

回復 8# 藍天麗池
用這個程式再試試看行不行
資料暫存.rar (61.16 KB)

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題