Board logo

標題: [發問] DDE 欄位是參照 , 要如何取出值而非整串參照 [打印本頁]

作者: saleen    時間: 2013-12-27 08:15     標題: 在指定時間內將欄位代入數字

[attach]17128[/attach]

小妹的這個工作表
是要每隔一段時間就自動可記錄交易量
其中每日自動將舊資料下移並插入今日日期的部份已經終於寫出來了 :Q

但要在指定時間內將 C2 這個欄位內的值複製到指定的 B__ 欄位中
這部份很怪不管怎麼寫都沒辦法成功運作 ><"

實在是試不出來...只能向各位大大求助了... T_T
作者: owen06    時間: 2013-12-27 09:36

本帖最後由 owen06 於 2013-12-27 09:38 編輯

回復 1# saleen


    時間或日期的格式前後要用 ##,不能用"",timevalue才要用到"",可是他長這樣:timevalue("08:04:00")
    你把他改成這樣就會有作用了:
    If Time > #8:04:00 AM# < #5:04:30 PM# Then
作者: saleen    時間: 2013-12-27 09:50

回復  saleen


    時間或日期的格式前後要用 ##,不能用"",timevalue才要用到"",可是他長這樣:tim ...
owen06 發表於 2013-12-27 09:36



    好的我試市看 ~ 感謝大大
作者: saleen    時間: 2013-12-30 14:00

回復  saleen


    時間或日期的格式前後要用 ##,不能用"",timevalue才要用到"",可是他長這樣:tim ...
owen06 發表於 2013-12-27 09:36



    還是沒用...
一樣是系統時間到了後不會去更新 ><?...
作者: saleen    時間: 2013-12-30 14:25

這邊發上我照 Mico 論壇上的相關問題之解答來輸入的格式

Sub recordData()

With 工作表2


Dim szTime As String

szTime = Time

' Setting For Time Constraints


If szTime > #2:25:00 PM# And szTime < #2:25:10 PM# Then


.[C2].Copy .[B5]

End If

End With
End Sub


照理說應該要在 2:25:00 到 2:25:10 中間
一直把 C2 複製到 B5 才對

不知道為什麼就是沒有作用 ><


就命  T__T
作者: owen06    時間: 2013-12-31 11:18

回復 5# saleen


  因為你的巨集裡,並沒有告知系統要在何時去指行recordData這個巨集。
  也就是說recordData這個巨集是被動的,只有當你手動去執行他的時候,他才會有作用。
  你可以在workbook open裡加入 call recordData 的指令
    Private Sub Workbook_Open()
    timerEnabled = False
    Call timerStart            ' 程式一啟始,便去自動執行 timerStart
    Call recordData
    End Sub
  
  然後將recordData內容修改如下並將他從thiswoorkbook移到模組裡,
  這樣他才會主動的去執行你要的動作。
  1. Sub recordData()
  2. t = Now + TimeSerial(0, 1, 0)
  3. With 工作表2
  4. If Time > #11:10:00 AM# And Time < #11:18:00 AM# Then
  5. .[C2].Copy .[c5]
  6. End If
  7. End With
  8. Application.OnTime t, "recordData"
  9. End Sub
複製代碼

作者: owen06    時間: 2013-12-31 12:10

回復 5# saleen


    補充一下,
    t = Now + TimeSerial(0, 1, 0)
    application.ontime t , "recordData"
   這是表示每隔一分鐘就會重複執行一次這個巨集的指令,
   如果你想要每秒鐘執行一次,就改成Timeserial(0,0,1),
   timeseril裡面的數字分別代表的是時、分、秒。
作者: saleen    時間: 2013-12-31 12:16

回復  saleen


    補充一下,
    t = Now + TimeSerial(0, 1, 0)
    application.ontime t , "re ...
owen06 發表於 2013-12-31 12:10



    感謝 owen 大大 !
小妹已經成功讓它開始運作了
太感謝了 ><
作者: saleen    時間: 2014-1-2 09:17     標題: DDE 欄位是參照 , 要如何取出值而非整串參照

小妹我完成了上次的
在指定時間記錄當下總量的功能
想說測試沒問題就把它套進 DDE 裡
程式碼如下

Sub recordData()

With 工作表2

If Time > #9:00:00 AM# And Time < #9:00:15 AM# Then

.[B2].Copy .[F5]

End If

If Time > #9:05:00 AM# And Time < #9:05:05 AM# Then

.[B2].Copy .[G5]

End If

If Time > #9:15:00 AM# And Time < #9:15:05 AM# Then

.[B2].Copy .[H5]



結果.....
B2 這個欄位因為是從 DDE 撈出資料所以它在 Excel 裡面是長這樣 B2 =XQTISC|Quote!'FITX*1.TF-TotalVolume'

於是所有的F5,G5,H5.... 全都在記錄時記錄成 XQTISC|Quote!'FITX*1.TF-TotalVolume'

這樣就完全沒作用了 T_______________T
我不是要記錄 DDE 而是要當下的數值阿 :'(


只好再向各為大大求助了..:'(
作者: GBKEE    時間: 2014-1-2 11:33

回復 9# saleen

試試看
  1. .[F5]=.[B2].Value
複製代碼

作者: saleen    時間: 2014-1-2 12:03

回復  saleen

試試看
GBKEE 發表於 2014-1-2 11:33



    可以了 !!
太感謝大大了 ><
只剩個小問題就是
記錄出來都會變 #######
要手動設成 通用格式 才會恢復正常

感謝大大 !




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