返回列表 上一主題 發帖

請問此功能有其他的方式解決嗎?

請問此功能有其他的方式解決嗎?

本帖最後由 藍天麗池 於 2024-1-2 21:33 編輯

請教版上前輩,我目前有個VBA用來記錄期貨數據,其功能為成交量有變動就紀錄,然後我去做計算,目前是用成交量有變動就紀錄的方式去寫,但期貨的跳動速度很快(有時候1秒會寫入6-8筆的資料),從開盤到收盤會寫入大量的資料

       目前我的VBA的運作如下(A1的值是券商DDE得來的,大概就如同我附件那樣)
       A1 10
       A2 15      B2 = A2-A1 =5
       A3 18      B3 = A3-A2 =3
       A4 20                   .
       A5 25                   .
            .                        .
            .                        .
        依次下去       依次下去

因為我抓的資料不少所以資料有點大,目前是先將資料都先記錄下來,再求差,導致運算速度變慢,所以想請教版上前輩,我上述的需求如果不用變動寫入的方式去求差,有其他的解決方式嗎?

變動紀錄.rar (17.49 KB)

回復 1# 藍天麗池


    謝謝前輩發表此主題與範例
前輩敘述的情境與範例不一樣,可以再補充一下?
20240103_1.jpg
2024-1-3 07:46
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 2# Andy2483
主要就是不要用紀錄的方式求差值,想了解有無其他方式

隨時間推進B、C欄會有值一直寫進去,然後再求B3-B2、B4-B3......一直下去

詳細說就是假設B2在84500(時間)的值是252,84501的值是300,我想要求差值300-252,但不想用紀錄的方式求差值要如何做呢?

TOP

回復 3# 藍天麗池


    謝謝前輩回復
後學很想學DDE, Worksheet.Calculate 事件 (Excel) 怎麼應用
工作領域不在這區塊,尚未研究,請前輩稍等其他厲害的前輩幫忙
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

本帖最後由 Andy2483 於 2024-1-4 14:23 編輯

回復 3# 藍天麗池


    謝謝前輩
後學學習 Private Sub Worksheet_Calculate()方案如下,請前輩參考
模擬結果:
20240104_1.jpg
2024-1-4 14:22

範例檔:
變動紀錄_20240104.zip (17.29 KB)
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

=SUMPRODUCT(N(OFFSET(A1,LOOKUP(1,0/(A:A<>""),ROW(A:A))-{1,2},))*{1,-1})
隨意窩 "EXCEL迷"  blog  或https://hcm19522.blogspot.com/ EXCEL函數

TOP

回復 6# hcm19522

請教前輩這是用函數的方式來解?能幫我解釋一下嗎?有點看不懂,感謝

TOP

回復 5# Andy2483
我回家試試看,再跟你說結果

TOP

本帖最後由 藍天麗池 於 2024-1-4 20:29 編輯

回復 5# Andy2483


    Andy,感謝你的回覆,但你好像誤解我的意思了,你以下的程式碼還是需要把總委賣跟總委賣往下寫才能去相減得出差,這樣如果我有20個總委買賣的資料就會有40欄,資料量會很大
   [F2] = [B2] - Cells(Rows.Count, 2).End(3)
   [G2] = [C2] - Cells(Rows.Count, 3).End(3)

我要的結果是我往下寫的值只留差值,如同我在附件幫你標示的樣子 變動紀錄(差別).rar (19.58 KB)

TOP

回復 9# 藍天麗池


    謝謝前輩回覆
明天再下載來研究看看
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題