- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 4# daniel5168
試試看- Sub 自動記錄()
- Dim Rng As Range, 漲跌 As Single, 均價 As Single
- If uMode = 0 Then Exit Sub
- With Sht1
- If Time > TimeValue(EndTime) Then '收盤時間以後不執行
- .[O8] = "已過收盤"
- uMode = 0
- Exit Sub
- End If
- '----------------------------------------------------------
- Set Rng = .Range("A65536").End(xlUp).Offset(1)
- .Range("A" & Rng.Row & ":C" & Rng.Row).Value = .Range("A2:C2").Value
- With .Cells(Rng.Row, "C") '
- '漲跌的定義應該是(這分鐘成交價-上分鐘成交價)/上分鐘成交價
- If .Row >= 4 Then 漲跌 = (.Cells - .Cells.Offset(-1)) / .Cells.Offset(-1)
- '20單位週期均價
- If .Row >= 22 Then 均價 = Application.WorksheetFunction.Average(.Cells.Offset(-19).Resize(20))
- End With
- .Range("D2") = IIf(漲跌 <> 0, 漲跌, "")
- .Range("E2") = IIf(均價 <> 0, 均價, "")
- .Range("D" & Rng.Row & ":E" & Rng.Row).Value = .Range("D2:E2").Value
- '------------------------------------------------
- End With
- If ActiveSheet.Name = Sht1.Name And xRow > 8 Then
- ActiveWindow.ScrollRow = xRow - 6 '讓最新資料保持在可見視窗中
- End If
- Beep
- '------------------------------------------------
- ThisWorkbook.Save '存檔
- Application.OnTime Now + TimeValue("00:00:01"), "自動記錄" '每一秒遞迴一次
- End Sub
複製代碼 |
|