Board logo

標題: 請問該如何將DDE的數據「每秒」紀錄? [打印本頁]

作者: j1221    時間: 2011-12-27 09:04     標題: 請問該如何將DDE的數據「每秒」紀錄?

本帖最後由 j1221 於 2011-12-27 09:06 編輯

各位前輩好,

小弟之前曾經發問過,「請問如何將以連接EXCEL的DDE數據每分鐘紀錄下來?

但是之後有一位網友在後續的討論中,問了「該如何紀錄每秒」的資料,我原先想試著回答他,所以我把原先的Coode:
  1. Private Sub change()
  2.     Dim TimeRange As Range, Rng As Range, R As Range
  3.     With Sheet8
  4.         Set TimeRange = .[A:A].Find(TimeSerial(Hour(Time), Minute(Time), 0), LookIn:=xlFormulas)
  5.         Set Rng = TimeRange.Offset(, 1).Resize(1, 15)
  6.     End With
  7.     Rng.Value = Sheet1.[B8:P8].Value
  8.    
  9.     If Time > TimeValue("13:45:00") Then Exit Sub
  10.     Application.OnTime Now + TimeValue("00:01:00"), "ThisWorkbook.change"
複製代碼
改成
  1. Private Sub change()
  2.     Dim TimeRange As Range, Rng As Range, R As Range
  3.     With Sheet8
  4.         Set TimeRange = .[A:A].Find(TimeSerial(Hour(Time), Minute(Time), Second(Time)), LookIn:=xlFormulas)
  5.         Set Rng = TimeRange.Offset(, 1).Resize(1, 15)
  6.     End With
  7.     Rng.Value = Sheet1.[B8:P8].Value
  8.       
  9.     If Time > TimeValue("13:45:00") Then Exit Sub
  10.     Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.change"
複製代碼
可是卻沒辦法使用,一執行巨集就會跳出「沒有With物件,或是With物件錯誤」

可否請問為什麼這樣改不行呢?謝謝大家

ps:對應的Excel時間資料格,也已經更改
作者: kobo    時間: 2011-12-27 09:45

在這code中有寫到sheet8
你確定excel檔案中有有這個工作表
作者: j1221    時間: 2011-12-27 10:09

回復 2# kobo

有的,因為原先的code是可以執行的!
作者: GBKEE    時間: 2011-12-27 15:59

回復 3# j1221
附檔上來,看是那裡出錯錯誤.
作者: j1221    時間: 2011-12-28 02:08

回復 4# GBKEE

謝謝GBKEE大,請參閱附件。

[attach]8937[/attach]
作者: Hsieh    時間: 2011-12-28 08:19

回復 5# j1221

    Set TimeRange = .[A:A].Find(TimeSerial(Hour(Time), Minute(Time), Second(Time)), LookIn:=xlFormulas)

可能這句因為找不到TimeSerial(Hour(Time), Minute(Time), Second(Time))這個值造成下一句
Set Rng = TimeRange.Offset(, 1).Resize(1, 15)因為TimeRange=Nothing而出現錯誤
作者: j1221    時間: 2011-12-28 08:24

回復 6# Hsieh


謝謝Hsieh大! 我在Sheet8已經把所有的時間改成 hh:mm:ss了阿..... 那可否請問該怎麼改呢?
作者: GBKEE    時間: 2011-12-28 14:13

回復 5# j1221
在"08:45:00"<->"13:45:00" 間 執行Sub change 沒有 6#超版說的問題
如"08:45:00"<->"13:45:00" 時間外 執行Sub change 你這錯誤是會產生的
作者: j1221    時間: 2011-12-28 23:09

回復 8# GBKEE

謝謝GBKEE大,我今天盤中又試了一次,結果可以了誒....

不知道怎麼搞得....勞煩各位了:$
作者: j1221    時間: 2011-12-28 23:11

回復 6# Hsieh

謝謝Hsieh大,我今天盤中又是了一次,結果可以了....不知道為甚麼,勞煩了,感謝您!:)
作者: yagami12th    時間: 2012-1-3 10:30

想不到dde可以抓到每秒,如果每分鐘抓一次應該比較不會有問題,dde常會少資料
作者: jarodz    時間: 2012-1-6 01:45

請問一下,
With Sheet8
           ^^^^^^這個是sheet的名字還是number?
作者: GBKEE    時間: 2012-1-6 07:48

本帖最後由 GBKEE 於 2012-1-6 07:49 編輯

回復 12# jarodz
With Sheets("jarodz ")  工作表 jarodz   
With Sheets(2)               如Sheets("jarodz ")在活頁簿的排序為2
With Sheet8                   如Sheets("jarodz ")的 CodeName 為 Sheet8
作者: veign911    時間: 2012-3-15 08:16

謝謝各位大大的回復,讓我受益良多




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