- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 13# color790 - '工作表1的程式
- Dim S As String '工作表1的 私用變數
- Private Sub Worksheet_Calculate()
- Application.EnableEvents = False
- If S <> [G8] & [i8] And [G8] & [i8] <> "" Then
- Cells(Rows.Count, "k").End(xlUp).Offset(1).Resize(1, 3) = Array(Time, [G8], [i8])
- S = [G8] & [i8]
- End If
- Application.EnableEvents = True
- End Sub
複製代碼- 'Module1的程序
- Sub AUTO_OPEN()
- 巨集1
- End Sub
- Private Sub 巨集1()
- Dim 開盤時間 As String, 收盤時間 As String, DEE時間, Deehh As String, Deemm As String
- Dim Time_Step As Date
- 開盤時間 = "B5"
- 收盤時間 = "D5"
- DEE時間 = "C2"
- Dim TESTTr '此變數是測試給你看的
- With 工作表1
- If .Range(開盤時間) > Time Then ' 尚未開盤 '等候開盤時間到執行
- Application.OnTime .Range("開盤時間"), "巨集1"
- ElseIf .Range(收盤時間) < Time Then ' 已經收盤 '關閉巨集
- Exit Sub
- End If
- Time_Step = #12:05:00 AM# '設定間隔時間: 5分鐘
- 'Time_Step = #12:01:00 AM# '設定間隔時間: 1分鐘
- ' 1 = 1分鐘 ; 一天的總分鐘數 24 * 60 =1440
- '1分鐘 #12:01:00 AM# * 1400
- 'Time_Step* 1400 = 設定間隔 ? 分鐘
-
- '**有錯誤 Tr = Int((Time - .Range(開盤時間) ) * 1440) + 30 '每差 300 秒就換一列***
- '上式應為傳回-> 間隔的總分鐘數 + 30
- Tr = Int(Int((Time - .Range(開盤時間)) * 1440) / 5) '每差 300 秒 此變數是測試給你看的
- TESTTr = Int((Time - .Range(開盤時間)) / Time_Step) '此變數是測試給你看的
- MsgBox TESTTr = Tr '此變數是測試給你看的
- If .[D2] <> "-" And .[D2] <> "###" Then '清盤的狀態, 不取其資料
- Tr = Int((Time - .Range(開盤時間)) / Time_Step) + 30
- ' Time_Step 分鐘一列 -> 從第30列開始 **
- Range("K" & Tr) = Time '加上時間
- If Range("L" & Tr) = "" Then Range("L" & Tr) = Range("D2") '開始價
- If Range("M" & Tr) = "" Or Range("D2") > Range("M" & Tr) _
- Then Range("M" & Tr) = Range("D2") '最高價
- If Range("N" & Tr) = "" Or Range("D2") < Range("N" & Tr) _
- Then Range("N" & Tr) = Range("D2") '最低價
- Range("O" & Tr) = Range("D2") '結束價
- End If
- Deehh = Mid(.Range(DEE時間), 1, 2)
- Deemm = Mid(.Range(DEE時間), 3, 2)
- Deemm = (Int(Deemm / (Time_Step * 1440)) + 1) * (Time_Step * 1440)
- If Val(Deemm)>=60 Then
- Deehh = Deehh + 1
- Deemm = "00"
- End If
- Application.OnTime TimeSerial(Deehh, Deemm, 0) + Time_Step, "巨集1"
- End With
- End Sub
複製代碼 |
|