- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2015-7-28 13:03
| 只看該作者
本帖最後由 GBKEE 於 2015-7-28 13:05 編輯
回復 3# daniel5168
試試看- Sub 自動記錄()
- Dim E As Variant, Rng As Range, t As Date, S As Integer, Shts()
- Shts = Array("Sheet1", "商品1", "商品2", "商品3") '工作表在活頁簿的名稱
- If uMode = 0 Then Exit Sub
- For Each E In Shts
- With Sheets(E)
- ' .Activate 成為作用中的工作表
- If Time > TimeValue(EndTime) Then '收盤時間以後不執行
- .[O8] = "已過收盤"
- uMode = 0
- GoTo For_Next 'Exit Sub
- End If
- .Range("B8") = Time '當前時間(時間碼表)
- '----------------------------------------------------------
- Set Rng = .Range("A65536").End(xlUp).Offset(1)
- .Range("A" & Rng.Row & ":N" & Rng.Row).Value = .Range("A8:N8").Value
- '------------------------------------------------
- ActiveWindow.ScrollRow = IIf(Rng.Row > 20, Rng.Row - 18, 1) '讓最新資料保持在可見視窗中
- Beep
- End With
- For_Next:
- Next
- '------------------------------------------------
- '下一個間隔的分鐘
- S = 1 '每1分鐘記錄,5分鐘則改為5
- t = Int(Application.Text(Time, "[m]") / S) + 1 '(總分鐘數/間隔的分鐘數) + 1
- t = DateAdd("N", S * t, 0) '從0分鐘後的 T * 間隔的分鐘數
- ThisWorkbook.Save '存檔
- Application.OnTime t, "自動記錄"
- End Sub
複製代碼 |
|