- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
8#
發表於 2016-10-8 14:44
| 只看該作者
本帖最後由 GBKEE 於 2016-10-8 16:18 編輯
回復 7# blue2263
試試看- Option Explicit
- Public uMode&, xTime(1 To 5)
- Public MyBook As Workbook, Sht1 As Worksheet, Sht2 As Worksheet, xRow&, 更新判斷
- Sub 開始執行()
- Set MyBook = ThisWorkbook
- xTime(1) = #3:00:00 AM# '電子盤 收盤時間 "03:00:00"
- xTime(2) = #8:44:00 AM# '早盤 開盤時間 "08:44:00"
- xTime(3) = #1:45:00 PM# '早盤 收盤時間 "13:45:00"
- xTime(4) = #2:35:00 PM# '電子盤 開盤時間 "14:35:00"
- If Time <= #11:59:59 AM# Then
- Set Sht1 = MyBook.Sheets("a") '早盤
- If Time <= xTime(1) Or Time >= xTime(2) Then
- If Time <= xTime(1) Then Set Sht1 = MyBook.Sheets("b") '電子盤
- 設定
- 自動記錄
- Else '早盤
- xTime(5) = xTime(2) - #12:00:05 AM#
- Application.OnTime xTime(5), "設定"
- xTime(5) = xTime(2) + #12:00:10 AM#
- Application.OnTime xTime(5), "自動記錄"
- End If
- Else
- Set Sht1 = MyBook.Sheets("B") '電子盤
- If Time <= xTime(3) Or Time >= xTime(4) Then
- If Time <= xTime(3) Then Set Sht1 = MyBook.Sheets("a") '早盤
- 設定
- 自動記錄
- Else
- xTime(5) = xTime(4) - #12:00:05 AM#
- Application.OnTime xTime(5), "設定"
- xTime(5) = xTime(4) + #12:00:10 AM#
- Application.OnTime xTime(5), "自動記錄"
- End If
- End If
- End Sub
- Sub 自動記錄()
- Dim Msg As Boolean
- If uMode = 0 Then Exit Sub
- If Time <= #11:59:59 AM# Then
- If Time > xTime(1) And Time < xTime(2) Then
- Msg = True
- xTime(5) = xTime(2) - #12:00:05 AM#
- Application.OnTime xTime(5), "設定"
- xTime(5) = xTime(2) + #12:00:10 AM#
- Application.OnTime xTime(5), "自動記錄"
- Application.StatusBar = "早盤 開盤時間" & xTime(5)
- End If
- Else
- If Time > xTime(3) And Time < xTime(4) Then
- Msg = True
- xTime(5) = xTime(2) - #12:00:05 AM#
- Application.OnTime xTime(5), "設定"
- xTime(5) = xTime(2) + #12:00:10 AM#
- Application.OnTime xTime(5), "自動記錄"
- Application.StatusBar = "電子盤 開盤時間" & xTime(5)
- End If
- End If
- If Msg Then
- Application.DisplayStatusBar = True '打開狀態列。
- 'Application.StatusBar = "收盤"
- ActiveWorkbook.Save '當前工作表儲存
- Exit Sub
- End If
- '每分鐘記錄----------------------------------------------------------
- ' If Second(Time) = 0 Then
- xRow = Sht1.Range("A8").End(xlDown).Row '由上往下找
- Sht1.Range("B1") = xRow + 1
- Sht1.Range("A10").EntireRow.Insert
- Sht1.Range("A10:CZ10").Value = Sht1.Range("A9:CZ9").Value
- Sht1.Range("b10") = Time
- ' End If
- '********每分鐘記錄- 畫面不會不停閃爍了****************
- xTime(5) = TimeSerial(Hour(Time), Minute(Time) + 1, 0)
- Application.OnTime xTime(5), "自動記錄" '每分遞迴一次
- End Sub
- Sub 設定()
- uMode = 1
- Sht1.Select
- Sht1.Range("a9") = Date '日期
- Application.DisplayStatusBar = False '關閉狀態列。
- End Sub
- Sub 開始()
- 開始執行
- End Sub
- Sub 停止執行()
- uMode = 0
- Application.DisplayStatusBar = True '打開狀態列。
- Application.StatusBar = "己停止執行"
- If Not IsEmpty(xTime(5)) And Time < xTime(5) Then
- Application.OnTime xTime(5), "自動記錄", Schedule:=False '停止未執行的 OnTime排程
- End If
- End Sub
複製代碼 |
|