- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
22#
發表於 2014-10-21 16:50
| 只看該作者
回復 21# t8899
修改一下- Option Explicit
- Public The_Time As Date
- Public my As Date
- Sub timestock()
- If CDec(The_Time) > CDec(Time) Then '預防 上一次 OnTime尚未執行,再度執行一次OnTime
- '************************
- '當 my <= #12:00:05 AM# 時
- 'If The_Time > Time Then 這條件式常會成立
- '是由於 The_Time As Date型態範圍小
-
- 'CDec(The_Time) 傳回 Decimal 資料型態
- 'Decimal 資料型態
- 'Decimal 變數係以 96 位元 ( 12 個位元組 ) 有正負號的整數形式來儲存。10 的指數以小數點右邊的位元數來調整,範圍從 0 到 28。在沒有小數位數的情形下,最大的可能值為 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 個小數位置的情形下,最大值為 +/-7.9228162514264337593543950335,而最小的非零值為 +/-0.0000000000000000000000000001。
- '附註 此時,Decimal 資料型態只能在 Variant中使用
- '也就是,您並不能宣告一變數為 Decimal 的型態。不過您可用 Cdec 函數,建立一個副型態為 Decimal 的 Variant。
- '************************
- Debug.Print CDec(The_Time), CDec(Time)
- Exit Sub
- End If
- With Sheets("sheet1").Range("a1")
- If .Value = 1 Then
- my = #12:01:00 AM#
- ElseIf .Value = 2 Then
- my = #12:02:00 AM#
- ElseIf .Value = 3 Then
- my = #12:00:30 AM#
- ElseIf .Value = 4 Then
- my = #12:00:20 AM#
- ElseIf .Value = 5 Then
- my = #12:00:05 AM#
- ElseIf .Value = 6 Then
- my = #12:00:10 AM#
- Else
- Exit Sub
- End If
- End With
- The_Time = Time + my
- Debug.Print The_Time
- Application.OnTime The_Time, "timestock"
- End Sub
複製代碼 |
|