返回列表 上一主題 發帖

[發問] 請問如何利用DDE提供的時間數據定期紀錄在excel活頁簿

各位大大:
小弟從他處取得一個紀錄每分鐘即時期貨報價資料的程式修改如下,
但是期貨的開盤時間08:45:00該筆資料一直都無法成功記錄下來
不知可否請教各位前輩幫忙協助一下看是否有需要修改的地方
謝謝



Sub myPrg()

  If Timer >= 31440 And Timer <= 49560 Then '早上8:44起至13:46止
    ActiveSheet.Cells(Int((Timer - 31440) / 60) + 4, 3).Value = Range("C2").Value '每60秒,往下一列, 填最新數值
    ActiveSheet.Cells(Int((Timer - 31440) / 60) + 4, 4).Value = Range("D2").Value '每60秒,往下一列, 填最新數值
    ActiveSheet.Cells(Int((Timer - 31440) / 60) + 4, 5).Value = Range("E2").Value '每60秒,往下一列, 填最新數值
    ActiveSheet.Cells(Int((Timer - 31440) / 60) + 4, 6).Value = Range("F2").Value '每60秒,往下一列, 填最新數值
    ActiveSheet.Cells(Int((Timer - 31440) / 60) + 4, 7).Value = Range("G2").Value '每60秒,往下一列, 填最新數值
   
    Call Timer2 ' <------- 改為Timer2
  End If
   
End Sub

Sub Timer2()
'每60秒執行 "myPrg" 這個副程式
   Application.OnTime Now + 60 / 86400#, "myPrg"
      
End Sub
Sub StartTimer()
  
'從啟動excel 開始的那一刻起, 在60-(timer  mod 60)秒 (為了切齊整秒) 後開始執行

   Application.OnTime Now + (60 - (Timer Mod 60)) / 86400#, "myPrg"
      
End Sub

TOP

感謝barrykuo大大的回覆,小弟其實完全不懂VB,只是剛好爬文有看到他人寫好一個可用的程式,並稍微修改如我上面PO的程式內容,我是想將從券商的看盤軟體所接收到的DDE資訊如下,即時從08:45:00這一個時間點開始記錄,但是08:45無法成功,而08:46就可以了

時間                成交           買賣口差        筆差        盤差        盤比差%
13:44:59        9,364             -956                 -57         -834         -1.06
                                       
                                       
8:45                                       
8:46                9,376            -1,004           87           814         42.94


您建議紀錄資料用以下的程式,但小弟不是很了解,可否建議有其他的參考範例呢
謝謝您
Sheets("yyyyyy").[a65536].End(xlUp).Row
去檢查活頁簿最後一行來做記錄,yyyyyy代表活頁簿的名稱,a代表row的這一個行最後一個有記錄行號。

TOP

Barry 大大您好:

依照您的建議修改如下
但卻跑出錯誤訊息



[attachimg]18740

Error.png (56.23 KB)

Error.png

TOP

barrykuo大大:

1. 已將end if 刪除
2.程式是沒有出現錯誤訊,但還是沒有紀錄資料
3.不知是否因您之前有提到datarow = Sheets("yyyyyy").[c65536].End(xlUp).Row裡面的yyyyyy填上你記錄的活頁簿名稱

而我將檔名設為"EURO", 所以我將yyyyyy填上EURO,也就是說如下:

datarow = Sheets("EURO").[c65536].End(xlUp).Row

才造成無法RUN程式

感謝回復

TOP

barrykuo大大

依建議修改後,已經可以run了
謝謝您

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題