返回列表 上一主題 發帖

[發問] 請問如何將以連接EXCEL的DDE數據每分鐘紀錄下來?

真是強押!
給他有看沒有懂
我會盡快把他弄懂

TOP

好厲害!! 謝謝! 
想學EXECL 的新人

TOP

太感激了 ! 也太感動了 !
我在一直在尋找這個問題的解答
於在這兒找到了

TOP

各位大家好,

因為小弟沒有VBA經驗, 在拜讀以上文章之後還是霧煞煞.
不知道要把DDE的資料記錄下來的方法除了使用VBA之外,是否可以使用EXCEL函數來達成呢 ?

TOP

早上發文後看了許久EXCEL的書籍, 看起來函數應該無法達成將DDE每筆紀錄在Excel的功能,
還是需要靠VBA.

我想要達到的功能與發問者"J1221"先生不太一樣(我使用EasyWin DDE),
以下為我的條件問題, 希望各位高手可以解答.
1.抓取EasyWin DDE中的時間當作數值紀錄標準, 如附件"C6"
2.依照C6的時間帶出每分鐘的買賣資料"E6" & "F6" (非本機電腦時間)
3.將E6 & F6每分鐘的時間紀錄到I2 ~ I273 & J2 ~ J273

逛了一下午的書局, 簡單的寫了一個Sample.
因為我不知道要怎麼設回圈, 如果按照最簡單的方式, 每一分鐘判斷一次, 要寫271個判斷式.
不知道各位高手是否有方法可以減少程式碼的方式呢 ?

謝謝. (隨信附上我的EXCEL檔)
DDE-Test.zip (9.66 KB)

TOP

回復 25# skybbs
  1. Private Sub Worksheet_Calculate()
  2. t = Format(TimeValue(Format([C6], "00:00:00")), "hh:mm:ss")
  3. Set a = Range("H:H").Find(t)
  4. If Not a Is Nothing Then a.Offset(, 1).Resize(, 3) = Array([E6], [F6], [E6] - [F6])
  5. End Sub
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 skybbs 於 2011-1-19 20:22 編輯

回復 26# Hsieh

感謝Hsieh的回覆, 因為昨天我想試一下我的想法是否可行, 所以把判斷式都Key了.
今天一早看到謝大的回覆, 有下面幾點與早上測試VBA部份的問題希望謝大可以撥空回覆.

1. 我把從DDE時間格改為B6, 從09:00開始每一分鐘把D6&E6的資料Copy到H2.I2.
    09:01時Copy到H3.I3, 09:02時Copy到H4.I4依此類推.
    請問謝大的程式要怎麼可以套到我的VBA程式裡 ? 有哪些部份可以刪除的 ?

2. 在我的Sheet1裡都是資料, 所以我把sheet1的資料在Sheet2裡畫圖, 但是發現如果畫面沒有在Sheet1時VBA的程式就不會記錄資料.
    請問這個有解嗎 ?

3. 這個程式要多久(目前我設定3秒)執行一次會比較恰當呢 ?

隨信附上EXCEL檔案, 煩請謝大幫忙看一下. 謝謝.
DDE-Test v1.zip (43.26 KB)

TOP

Private Sub Workbook_Open()
Sheet2.[B7:J307] = ""
If Time >= TimeValue("08:45:00") And Time <= TimeValue("13:45:00") Then
change
Else
Application.OnTime "08:45:00", "ThisWorkbook.change"
End If
End Sub


Private Sub change()
    Dim TimeRange As Range, Rng As Range, R As Range
    With Sheet2
        Set TimeRange = .[A:A].Find(TimeSerial(Hour(Time), Minute(Time), 0), LookIn:=xlFormulas)
        Set Rng = TimeRange.Offset(, 1).Resize(1, 7)
    End With
    Rng.Value = Sheet1.[N3:T3].Value
    If Time > TimeValue("13:45:00") Then Exit Sub
    Application.OnTime Now + TimeValue("00:01"), "ThisWorkbook.change"
End Sub

這是我使用的程式碼
我Sheet1 是在接收dde加運算的  都有正常
且資料都有出來
而Sheet2就是把每分鍾的資料存起來
但發現  有時有1~3分鍾沒有抓到資料
就變成空白  不曉得是什麼原因呢

TOP

Hi Jerry,

今天我用我的VBA在作測試, 發現有如下動作時會無法記錄資料, 給您參考.

1. 如果不是在該sheet時, VBA好像不會動作. (最小化OK)
2. 如果開另外一個Excel在做別的事情時, 好像VBA也不會動作.

以上是我今天的發現, 提供參考.

TOP

大家好!我是在網上找資料時發現舊壇的一個post而到這兒的:
http://gb.twbts.com/index.php?topic=9871.0
我覺得這正是我希望找到的答案,也可能與大家討論的東西有關,可惜我看不到附件呢...

TOP

        靜思自在 : 為人處世要小心細心,但不要「小心眼」。
返回列表 上一主題