返回列表 上一主題 發帖

[發問] 我也想問DDE利用Private Sub Worksheet_Calculate()取資料方式

[發問] 我也想問DDE利用Private Sub Worksheet_Calculate()取資料方式

各位大大你們好
我知道我很嫩
但是近日剛好有需求想要請教各位大大

先在Sheet1(Sheet1)上打上
其他大大的神奇程式(如下)

Private Sub Worksheet_Calculate()
Dim NowDateTime, nowTime, startTime, stopTime
Dim tr As String

NowDateTime = Now  '現在的時間值, 去掉整數部份,
nowTime = (NowDateTime - Int(NowDateTime)) '得到現在的時間值
startTime = Range("A6") '開盤時間, 例如: "09:00:00 AM"
stopTime = Range("A8")  '收盤時間, 例如: "01:30:00 PM"

If nowTime <= startTime Then  '尚未開盤
    Exit Sub
ElseIf nowTime > stopTime Then '已經收盤
    Exit Sub
Else
    If [C2] <> "-" And [C2] <> "###" Then   '清盤的狀態, 不取其資料
        tr = Int((nowTime - startTime) * 288) + 2  '每差 300 秒就換一列
        If Range("D" & tr) = "" Then Range("D" & tr) = Range("C2")  '開始價
        If Range("E" & tr) = "" Or Range("C2") > Range("E" & tr) _
            Then Range("E" & tr) = Range("C2")                      '最高價
        If Range("F" & tr) = "" Or Range("C2") < Range("F" & tr) _
            Then Range("F" & tr) = Range("C2")                      '最低價
        Range("G" & tr) = Range("C2")                               '結束價
    End If
End If
End Sub

但最後還是無法存取
不知道哪邊錯誤了  還是要打在ThisWorkbook那邊呢???
我是使用富邦e01 DDE存取資料放在C2

再請各位大大了 我有爬文但是還是不會 感謝

感謝大大幫忙回覆
1.數字是會跳動的
2.無錯誤訊息
3.我設定為D E F G 跟著C2變化 但是D E F G從來沒有出現過數值過??

檢查後
1.正常
2.好像是這邊出問題 我改用元大DDE後就出現程式錯誤 不過正在摸熟錯誤碼中
  似乎是富邦e01使用為格式問題
3.目前就在疑惑 根據我的解讀 是否 D E F G就應該開始存取資料後換行持續紀錄
   但完全沒有動靜 感謝大大了

TOP

附件為測試檔案
A6為開始時間
A8為結束時間
C2的Data原本是想放入期貨跳動
但由於想測試整天所以是放上元大匯率跳動

再麻煩各位大大了
感謝

關於第二點修改公式部分已在學習感謝各位

VBA2.rar (8.13 KB)

TOP

感謝大大的回覆
根據G大你的寫法 目前在 D E F G還是沒有數值寫入並且儲存

我學淺的看著Code
意思上我都懂 但是我覺得有點奇怪
為何沒有執行
If Range("D" & Tr) = "" Then Range("D" & Tr) = Range("C2")  這行
一開始假若沒有數值  會判斷錯誤合理

我的問題就是 數字會跳動 但是數直無法儲存  感謝各位!

TOP

真的有記錄下來  是我時間上的差異
導致tr數值比較大
太蠢了我
Sorry

好的 感謝大大 我來在好好研究一下這些資料
感謝各位

TOP

本帖最後由 albertbug 於 2011-7-27 18:48 編輯

各位大大 我還想做另外一件事情
每行D E F G
皆需要與上行D E F G比較值大小
(因為每行都會根據tr往下排序)
比較完後 根據判斷式輸出文字"+" or "-"

如此比較法要如何寫出

TOP

本帖最後由 albertbug 於 2011-7-28 18:09 編輯

感謝luhpro大大的建議
我會自己嘗試撰寫的
並且補上些中文說明
主要當初沒補上是因為想說想把主架構VBA學會  
感謝建議


感謝GBKEE大大
由於下班後使用MAC os沒裝Office
明日會在研究此些程式碼 感謝
原來主要要使用.Offset(-1)
感謝

TOP

各位大大  判斷已經沒有問題囉
但是又來請問
假若相同的 Worksheet_Calculate
裡面可以計算加法嗎

ex 我有匯出一筆數字(成交量)
但是他每改變一次  我就累積累加起來 一樣五分鐘後換行
此加法是需要額外寫一個Sub計算
還是相同一個也可以???

不好意思  一直問問題 感謝大大指正

TOP

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題