返回列表 上一主題 發帖

[發問] 程式流程控制問題

回復 1# blue2263

請修正


   
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2016-10-8 16:18 編輯

回復 7# blue2263
試試看
  1. Option Explicit
  2. Public uMode&, xTime(1 To 5)
  3. Public MyBook As Workbook, Sht1 As Worksheet, Sht2 As Worksheet, xRow&, 更新判斷
  4. Sub 開始執行()
  5.         Set MyBook = ThisWorkbook
  6.         xTime(1) = #3:00:00 AM# '電子盤 收盤時間 "03:00:00"
  7.         xTime(2) = #8:44:00 AM# '早盤 開盤時間 "08:44:00"
  8.         xTime(3) = #1:45:00 PM# '早盤 收盤時間 "13:45:00"
  9.         xTime(4) = #2:35:00 PM# '電子盤 開盤時間 "14:35:00"
  10.         If Time <= #11:59:59 AM# Then
  11.             Set Sht1 = MyBook.Sheets("a") '早盤
  12.             If Time <= xTime(1) Or Time >= xTime(2) Then
  13.                  If Time <= xTime(1) Then Set Sht1 = MyBook.Sheets("b")                     '電子盤
  14.                 設定
  15.                 自動記錄
  16.             Else         '早盤
  17.                 xTime(5) = xTime(2) - #12:00:05 AM#
  18.                 Application.OnTime xTime(5), "設定"
  19.                 xTime(5) = xTime(2) + #12:00:10 AM#
  20.                 Application.OnTime xTime(5), "自動記錄"
  21.             End If
  22.         Else
  23.             Set Sht1 = MyBook.Sheets("B")  '電子盤
  24.             If Time <= xTime(3) Or Time >= xTime(4) Then
  25.                 If Time <= xTime(3) Then Set Sht1 = MyBook.Sheets("a") '早盤
  26.                 設定
  27.                 自動記錄
  28.             Else
  29.                 xTime(5) = xTime(4) - #12:00:05 AM#
  30.                 Application.OnTime xTime(5), "設定"
  31.                 xTime(5) = xTime(4) + #12:00:10 AM#
  32.                 Application.OnTime xTime(5), "自動記錄"
  33.             End If
  34.         End If
  35. End Sub
  36. Sub 自動記錄()
  37.         Dim Msg As Boolean
  38.        If uMode = 0 Then Exit Sub
  39.         If Time <= #11:59:59 AM# Then
  40.             If Time > xTime(1) And Time < xTime(2) Then
  41.                 Msg = True
  42.                 xTime(5) = xTime(2) - #12:00:05 AM#
  43.                 Application.OnTime xTime(5), "設定"
  44.                 xTime(5) = xTime(2) + #12:00:10 AM#
  45.                 Application.OnTime xTime(5), "自動記錄"
  46.                 Application.StatusBar = "早盤 開盤時間" & xTime(5)
  47.             End If
  48.         Else
  49.             If Time > xTime(3) And Time < xTime(4) Then
  50.                 Msg = True
  51.                 xTime(5) = xTime(2) - #12:00:05 AM#
  52.                 Application.OnTime xTime(5), "設定"
  53.                 xTime(5) = xTime(2) + #12:00:10 AM#
  54.                 Application.OnTime xTime(5), "自動記錄"
  55.                 Application.StatusBar = "電子盤 開盤時間" & xTime(5)
  56.             End If
  57.         End If
  58.         If Msg Then
  59.            Application.DisplayStatusBar = True  '打開狀態列。
  60.            'Application.StatusBar = "收盤"
  61.            ActiveWorkbook.Save '當前工作表儲存
  62.            Exit Sub
  63.          End If
  64.         '每分鐘記錄----------------------------------------------------------
  65.    '     If Second(Time) = 0 Then
  66.             xRow = Sht1.Range("A8").End(xlDown).Row  '由上往下找
  67.             Sht1.Range("B1") = xRow + 1
  68.             Sht1.Range("A10").EntireRow.Insert
  69.             Sht1.Range("A10:CZ10").Value = Sht1.Range("A9:CZ9").Value
  70.             Sht1.Range("b10") = Time
  71.    '     End If
  72.         '********每分鐘記錄- 畫面不會不停閃爍了****************
  73.         xTime(5) = TimeSerial(Hour(Time), Minute(Time) + 1, 0)
  74.         Application.OnTime xTime(5), "自動記錄" '每分遞迴一次
  75. End Sub
  76. Sub 設定()
  77.         uMode = 1
  78.         Sht1.Select
  79.         Sht1.Range("a9") = Date '日期
  80.         Application.DisplayStatusBar = False  '關閉狀態列。
  81. End Sub
  82. Sub 開始()
  83.     開始執行
  84. End Sub
  85. Sub 停止執行()
  86.     uMode = 0
  87.     Application.DisplayStatusBar = True  '打開狀態列。
  88.     Application.StatusBar = "己停止執行"
  89.     If Not IsEmpty(xTime(5)) And Time < xTime(5) Then
  90.         Application.OnTime xTime(5), "自動記錄", Schedule:=False  '停止未執行的 OnTime排程
  91.     End If
  92. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題