- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
2#
發表於 2013-6-5 16:58
| 只看該作者
回復 1# handsometrowa - Option Explicit
- Dim T1 As Date
- Const 開始 = "08:45:05"
- Const 結束 = "13:46:08"
- Const 週期1 = "12:00:10 AM"
- '******************************
- '常數可直接設為時間
- 'Const 開始 = #8:45:05 AM#
- 'Const 結束 = #1:46:08 PM#
- 'Const 週期1 = #12:00:10 AM# '10分鐘
- '***************************
- Sub start()
- Call StopTimer
- Call Timer1
- End Sub
- Sub StopTimer()
- On Error Resume Next
- Application.OnTime T1, "Timer1", , 0
- T1 = Now
- '************************
- '建議改為 Time(時間)
- 'T1 = Time
- '***********************
- End Sub
- Sub Timer1()
- '*********************
- '依序只執行最先成立的條件,如後面有成立的條件是不會執行的.
- 'If 條件=True Then
- ' 執行程式碼
- 'ElseIf 條件=True Then
- ' 執行程式碼
- 'Else '所有條件都不成立
- ' 執行程式碼
- 'End If
- '**********************
- If T1 Then ' T1> 0 -> T1 = True ,T1= 0 -> T1= False
- Sheets("台指").Range("B6000").End(xlUp).Offset(1, 0) = Sheets("sheet1").Range("B2")
- Sheets("電指").Range("B6000").End(xlUp).Offset(1, 0) = Sheets("sheet1").Range("B4")
- Sheets("金指").Range("B6000").End(xlUp).Offset(1, 0) = Sheets("sheet1").Range("B6")
- End If
- '******************
- 'T1 =函數(參數1,參數2,參數3,參數4)傳回的數值
- '******************
- T1 = TimeNext(開始, 結束, 週期1, Now) '建議 Now (日期+時間) 改為 Time (時間)
- If T1 Then Application.OnTime T1, "Timer1"
- End Sub
- Function ATimeNext(TStart As String, TEnd As String, TFrequency As String, TNOW As Date)
- 'Int(TNOW)->去掉小數(時間) 傳回日期
- If TNOW < Int(TNOW) + TimeValue(TStart) Then 'TNOW > 日期+時間
- TimeNext = Int(TNOW) + TimeValue(TStart)
- ' imeNext > 日期+時間
- ElseIf TNOW >= Int(TNOW) + TimeValue(TEnd) Then
- TimeNext = 0
- Else
- TimeNext = Int((TNOW + TimeValue(TFrequency) + 0.5 / 86400) / TimeValue(TFrequency)) * TimeValue(TFrequency)
- '86400秒 = 24(小時) * 60(分鐘) * 60(秒)
- End If
- End Function
- '***********************************************
- '常數直接設為時間 'TNOW 改為 Time(時間)
- 'T1 = TimeNext(開始, 結束, 週期1, Time)
- '函數參數的型態須修改
- Function TimeNext(TStart As Date, TEnd As Date, TFrequency As Date, TNOW As Date) '改為 Time(時間)
- If TNOW < TStart Then
- TimeNext = TStart
- ElseIf TNOW >= TEnd Then
- TimeNext = 0
- Else
- TimeNext = Time + TFrequency
- End If
- End Function
- '***********************************************
複製代碼 |
|