返回列表 上一主題 發帖

[發問] 用時間控制的程式,時間要跨過隔日的 VBA要如何寫?

[發問] 用時間控制的程式,時間要跨過隔日的 VBA要如何寫?

想要寫一支VBA  紀錄 台指期"日盤"和"午後盤" 的資料
午後盤時間這一段要跨到隔天早上,寫不出來,PO上來請教高人。

Sub 共用參照()
Set MyBook = ThisWorkbook
Set Sht1 = MyBook.Sheets("台指期")

If [A1] = "日盤" And Time >= TimeValue("08:44:00") And Time <= TimeValue("13:45:00")Then '依據儲存格A1的值為"日盤"或"夜盤"--> 選擇"日盤"
     StartTime = "08:44:10"   '日盤開盤前50秒-->執行程式
     EndTime = "13:45:10"     '日盤收盤後10秒-->停止程式
End If


If [A1] = "夜盤" And Time >= TimeValue("15:00:00") And Time <= TimeValue("05:00:00") Then  '選擇夜盤(15:00:00 ~ 隔日早上 05:00:00)

     StartTime = "14:59:10"  '夜盤開盤前50秒-->執行程式
     EndTime = "05:00:10"    '夜盤收盤後10秒-->停止程式

End If

End Sub

程式時間跨隔日.jpg (55.55 KB)

程式時間跨隔日.jpg

已經解決了!

TOP

回復 15# 准提部林

謝謝准提大!  
假設 我的即時資料是呈現在 C8: N8
我想要以後在同一張圖表上一起呈現"即時資料"與"紀錄資料",
也就是當我"清除紀錄資料"後,C9:N9的數值等於 C8:N8的數值(即時的),
在"執行紀錄"啟動後:
當第一分鐘結束時, 即時資料便記錄在C9:N9,且變成C10:N10與C8:N8 同步,
當第二分鐘結束時, 即時資料便記錄在C10:N10,且變成C11:N11與C8:N8 同步,
當第三分鐘結束時, 即時資料便記錄在C11:N11,且變成C12:N12與C8:N8 同步, ...............。
(也就是在紀錄資料區的最後一列與一直與即時數據同步)

一直到我再次"清除紀錄資料"時, 又變成C9:N9與C8:N8 同步了。
這樣的程式碼要如何寫 ?

TOP

回復 14# ABK


Set xE = Sht1.[a65536].End(xlUp) 改成D

TOP

回復 13# 准提部林


   謝謝准提大!  
   再給我問一下!  (不好意思! 突然想到)
   如果區間是 D欄到N欄這一區塊的紀錄 要刪除 , 保留最後一筆紀錄放到第9列 [D9:N9], 又要如何寫?
   
不好意思!  想說以後寫程式會碰到不是從A欄開始的資料區, 先問起來放 !

TOP

回復 12# ABK


Range(Sht1.[N9], xE(0)).Delete Shift:=xlUp

TOP

回復 11# 准提部林


謝謝准堤大!     由於我預計在 N欄之後 加入一些表格,所以整列的刪除會 刪到N欄後面的資料。
我只要 A欄到N欄這一區塊的紀錄 刪除 , 保留最後一筆紀錄放到第9列 [A9:N9], 這一段要如何修正?

TOP

回復 10# ABK


Sub 清除記錄資料()
Dim xE As Range
If MsgBox("※確定要清除〔Sheet1〕的記錄嗎? ", 4 + 32 + 256) = vbNo Then Exit Sub
Call 共用參照
Set xE = Sht1.[a65536].End(xlUp)
If xE.Row <= 9 Then Exit Sub
Range(Sht1.[A9], xE(0)).EntireRow.Delete
If ActiveSheet.Name = Sht1.Name Then ActiveWindow.ScrollRow = 1
End Sub

TOP

回復 4# 准提部林

准堤大您好 !
再請教一個問題, 如果在程式跑了一段時間後,我要清除紀錄,但是要保留最後一筆紀錄並讓它保留在第9行,清除資料的程式要如何改寫?

保留最後一行紀錄回到第9行.png (271.21 KB)

保留最後一行紀錄回到第9行.png

TOP

回復 8# 准提部林


    謝謝准堤大!    OK了!

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題